Upload
nicoli-de-moraes-alteia
View
513
Download
0
Embed Size (px)
Citation preview
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 1111
Capiacutetulo3
Redes de computadores e aInternetRedes de computadores e aInternet
Camadade
transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 2111
3
copy 2005 by Pearson Education 3 - 2
Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transportebull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 3111
3
copy 2005 by Pearson Education 3 - 3
Camada de transporte
bull
31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull37 Controle de congestionamento do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 4111
3
copy 2005 by Pearson Education 3 - 4
bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros
bull Os protocolos de transporte satildeoexecutados nos sistemas finais
bull Lado emissor quebra as mensagens
da aplicaccedilatildeo em segmentos e enviapara a camada de rede
bull Lado receptor remonta ossegmentos em mensagens e passa
para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 5111
3
copy 2005 by Pearson Education 3 - 5
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 2111
3
copy 2005 by Pearson Education 3 - 2
Objetivos do capiacutetulo bull Entender os princiacutepios por traacutes dos serviccedilos da camada de transportebull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Aprender sobre os protocolos de transporte na Internetbull UDP transporte natildeo orientado agrave conexatildeobull TCP transporte orientado agrave conexatildeobull Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 3111
3
copy 2005 by Pearson Education 3 - 3
Camada de transporte
bull
31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull37 Controle de congestionamento do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 4111
3
copy 2005 by Pearson Education 3 - 4
bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros
bull Os protocolos de transporte satildeoexecutados nos sistemas finais
bull Lado emissor quebra as mensagens
da aplicaccedilatildeo em segmentos e enviapara a camada de rede
bull Lado receptor remonta ossegmentos em mensagens e passa
para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 5111
3
copy 2005 by Pearson Education 3 - 5
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 3111
3
copy 2005 by Pearson Education 3 - 3
Camada de transporte
bull
31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull37 Controle de congestionamento do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 4111
3
copy 2005 by Pearson Education 3 - 4
bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros
bull Os protocolos de transporte satildeoexecutados nos sistemas finais
bull Lado emissor quebra as mensagens
da aplicaccedilatildeo em segmentos e enviapara a camada de rede
bull Lado receptor remonta ossegmentos em mensagens e passa
para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 5111
3
copy 2005 by Pearson Education 3 - 5
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 4111
3
copy 2005 by Pearson Education 3 - 4
bull Fornecem comunicaccedilatildeo loacutegica entreprocessos de aplicaccedilatildeo em diferenteshospedeiros
bull Os protocolos de transporte satildeoexecutados nos sistemas finais
bull Lado emissor quebra as mensagens
da aplicaccedilatildeo em segmentos e enviapara a camada de rede
bull Lado receptor remonta ossegmentos em mensagens e passa
para a camada de aplicaccedilatildeo
bull Haacute mais de um protocolo detransporte disponiacutevel para asaplicaccedilotildeesbull Internet TCP e UDP
Protocolos e serviccedilos de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 5111
3
copy 2005 by Pearson Education 3 - 5
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 5111
3
copy 2005 by Pearson Education 3 - 5
bull Camada de rede comunicaccedilatildeo loacutegica entre os hospedeirosbull Camada de transporte comunicaccedilatildeo loacutegica entre os processosbull Depende dos serviccedilos da camada de rede
Analogia com uma casa familiar12 crianccedilas enviam cartas para 12 crianccedilasbull Processos = crianccedilasbull Mensagens da aplicaccedilatildeo = cartas nos envelopesbull Hospedeiros = casasbull Protocolo de transporte = Anna e Billbull Protocolo da camada de rede = serviccedilo postal
Camada de transporte vs camada de rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 6111
3
copy 2005 by Pearson Education 3 - 6
bull Confiaacutevel garante ordem de entrega(TCP)
bull Controle de congestionamentobull Controle de fluxobull Orientado agrave conexatildeo
bull Natildeo confiaacutevel sem ordem de entregaUDPbull Extensatildeo do ldquomelhor esforccedilordquo do IP
bull Serviccedilos natildeo disponiacuteveisbull Garantia a atrasos
bull Garantia de banda
Protocolos da camada de transporte da Internet
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 7111
3
copy 2005 by Pearson Education 3 - 7
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 8111
3
copy 2005 by Pearson Education 3 - 8
Demultiplexaccedilatildeo no hospedeiro receptor Multiplexaccedilatildeo no hospedeiro emissor
entrega os segmentos recebidosao socket correto
coleta dados de muacuteltiplos socketsenvelopa os dados com cabeccedilalho(usado depois para demultiplexaccedilatildeo)
Multiplexaccedilatildeodemultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 9111
3
copy 2005 by Pearson Education 3 - 9
bull Computador recebe datagramas IPbull Cada datagrama possui endereccedilo IPde origem e IP de destinobull Cada datagrama carrega 1segmento da camada de transportebull Cada segmento possui nuacutemeros deporta de origem e destino (lembre-se
nuacutemeros de porta bem conhecidospara aplicaccedilotildees especiacuteficas)
bull O hospedeiro usa endereccedilos IP enuacutemeros de porta para direcionar osegmento ao socket apropriado
Como funciona a demultiplexaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 10111
3
copy 2005 by Pearson Education 3 - 10
bull Cria sockets com nuacutemeros de portaDatagramSocket mySocket1 = new DatagramSocket(99111)
DatagramSocket mySocket2 = new DatagramSocket(99222)
bull Socket UDP identificado por 2 valores(endereccedilo IP de destino nuacutemero da porta de destino)
bull Quando o hospedeiro recebe o segmento UDPbull Verifica o nuacutemero da porta de destino no segmentobull Direciona o segmento UDP para o socket com este nuacutemero de porta
bull Datagramas com IP de origem diferentes eou portas de origem diferentes satildeodirecionados para o mesmo socket
Demultiplexaccedilatildeo natildeo orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 11111
3
copy 2005 by Pearson Education 3 - 11
DatagramSocket serverSocket = new DatagramSocket(6428)
cliente
IPB
P2
cliente
IP A
P1P1P3
servidor
IP 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 12111
3
copy 2005 by Pearson Education 3 - 12
bull Socket TCP identificado por 4 valoresbull Endereccedilo IP de origembull End porta de origembull Endereccedilo IP de destinobull End porta de destino
bull Hospedeiro receptor usa os quatro valores para direcionar o segmento aosocket apropriado
bull Hospedeiro servidor pode suportar vaacuterios sockets TCP simultacircneosbull Cada socket eacute identificado pelos seus proacuteprios 4 valoresbull Servidores Web possuem sockets diferentes para cada cliente conectadobull HTTP natildeo persistente teraacute um socket diferente para cada requisiccedilatildeo
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 13111
3
copy 2005 by Pearson Education 3 - 13
cliente
IPB
P1
cliente
IP A
P1P2P4
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 14111
3
copy 2005 by Pearson Education 3 - 14
cliente
IPB
P1
cliente
IP A
P1P2
servidor
IP C
SP 9157
DP 80
SP 9157
DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775
DP 80
D-IPC
S-IP B
Demux orientada agrave conexatildeo servidor Web ldquothreadedrdquo
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 15111
3
copy 2005 by Pearson Education 3 - 15
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 16111
3
copy 2005 by Pearson Education 3 - 16
bull Protocolo de transporte da Internet ldquosem gordurasrdquo ldquosem frescurasrdquobull Serviccedilo ldquobest effortrdquo segmentos UDP podem serbull Perdidosbull Entregues fora de ordem para a aplicaccedilatildeo
bull Sem conexatildeobull Natildeo haacute apresentaccedilatildeo entre o UDP transmissor e o receptor
bull Cada segmento UDP eacute tratado de forma independente dos outrosPor que existe um UDPbull Natildeo haacute estabelecimento de conexatildeo (que possa redundar em atrasos)bull Simples natildeo haacute estado de conexatildeo nem no transmissor nem no receptorbull Cabeccedilalho de segmento reduzidobull Natildeo haacute controle de congestionamento UDP pode enviar segmentos tatildeo raacutepido
quanto desejado (e possiacutevel)
UDP User Datagram Protocol [RFC768]
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 17111
3
copy 2005 by Pearson Education 3 - 17
bull Muito usado por aplicaccedilotildees demutimiacutedia contiacutenua (streaming)bull Tolerantes agrave perdabull Sensiacuteveis agrave taxa
bull Outros usos do UDP (por quecirc)bull DNSbull SNMP
bull Transferecircncia confiaacutevel sobreUDP acrescentar confiabilidadena camada de aplicaccedilatildeobull Recuperaccedilatildeo de erro especiacutefica
de cada aplicaccedilatildeo
Mais sobre UDP
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 18111
3
copy 2005 by Pearson Education 3 - 18
Objetivo detectar ldquoerrosrdquo (ex bits trocados) no segmento transmitidoTransmissorbull Trata o conteuacutedo do segmento como sequumlecircncia de inteiros de 16 bitsbull Checksum soma (complemento de 1 da soma) do conteuacutedo do segmento
bull Transmissor coloca o valor do checksum no campo de checksum do UDPReceptorbull Computa o checksum do segmento recebidobull Verifica se o checksum calculado eacute igual ao valor do campo checksumbull NAtildeO - erro detectadobull SIM - natildeo haacute erros Mas talvez haja erros apesar disso Mas depoishellip
UDP checksum
3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 19111
3
copy 2005 by Pearson Education 3 - 19
bull Note quebull
Ao se adicionar nuacutemeros um vai um do bit mais significativo deve seracrescentado ao resultado
bull 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
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 20111
3
copy 2005 by Pearson Education 3 - 20
bull 31 Serviccedilos da camada de transportebull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
Camada de transporte
3P i iacute i d f ecirc i fiaacute l d d d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 21111
3
copy 2005 by Pearson Education 3 - 21
bull Importante nas camadasde aplicaccedilatildeo transportee enlace
bull Top 10 na lista dostoacutepicos mais importants
de redesbull Caracteriacutesticas dos canaisnatildeo confiaacuteveisdeterminaratildeo acomplexidade dosprotocolos confiaacuteveis detransferecircncia de dados
(rdt)
Princiacutepios de transferecircncia confiaacutevel de dados
3T f ecirc i fiaacute l d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 22111
3
copy 2005 by Pearson Education 3 - 22
ladotransmissor
ladoreceptor
rdt_send() chamada da camada superior (ex
pela aplicaccedilatildeo) Passa dados para entregar agravecamada superior receptora
udt_send() chamada pela entidade detransporte para transferir pacotes para o
receptor sobre o canal natildeo confiaacutevel
rdt_rcv() chamada quando o pacote chega aolado receptor do canal
deliver_data() chamada pela
entidade de transporte para entregardados para cima
Transferecircncia confiaacutevel o ponto departida
3T f ecirc i fiaacute l t d
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 23111
3
copy 2005 by Pearson Education 3 - 23
Etapas
bull Desenvolver incrementalmente o transmissor e o receptor de umprotocolo confiaacutevel de transferecircncia de dados (rdt)
bull Considerar apenas transferecircncias de dados unidirecionaisbull Mas informaccedilatildeo de controle deve fluir em ambas as direccedilotildees
bull 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 unicamentedeterminado pelo proacuteximo
eventoeventoaccedilotildees
Transferecircncia confiaacutevel o ponto departida
3rdt1 0 Transfecircrencia confiaacutevel sobre canais
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 24111
3
copy 2005 by Pearson Education 3 - 24
bull Canal de transmissatildeo perfeitamente confiaacutevelbull Natildeo haacute erros de bits
bull Natildeo haacute perdas de pacotesbull FSMs separadas para transmissor e receptorbull Transmissor envia dados para o canal subjacentebull Receptor lecirc os dados do canal subjacente
rdt10 Transfecircrencia confiaacutevel sobre canaisconfiaacuteveis
3 dt2 0 l d bit
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 25111
3
copy 2005 by Pearson Education 3 - 25
rdt20 canal com erros de bit
bull
Canal subjacente pode trocar valores dos bits num pacotebull Checksum para detectar erros de bits
bull A questatildeo como recuperar esses errosbull Reconhecimentos (ACKs) receptor avisa explicitamente ao transmissor
que o pacote foi recebido corretamentebull Reconhecimentos negativos (NAKs) receptor avisa explicitamente ao
transmissor que o pacote tem errosbull Transmissor reenvia o pacote quando da recepccedilatildeo de um NAK
bull Novos mecanismos no rdt20 (aleacutem do rdt10)bull Detecccedilatildeo de errosbull Retorno do receptor mensagens de controle
(ACK NAK) rcvr-gtsender
3 dt2 0 ifi atilde FSM
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 26111
3
copy 2005 by Pearson Education 3 - 26
rdt20 especificaccedilatildeo FSM
3rdt2 0 operaccedilatildeo com ausecircncia de erros
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 27111
3
copy 2005 by Pearson Education 3 - 27
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
3rdt2 0 cenaacuterio de erro
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 28111
3
copy 2005 by Pearson Education 3 - 28
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
3rdt2 0 tem um problema fatal
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 29111
3
copy 2005 by Pearson Education 3 - 29
O que acontece se o ACKNAK eacute corrompidobull Transmissor natildeo sabe o que aconteceu no receptorbull Natildeo pode apenas retransmitir possiacutevel duplicata
Tratando duplicatas bull Transmissor acrescenta nuacutemero de sequumlecircncia em cada pacotebull Transmissor reenvia o uacuteltimo pacote se ACKNAK for perdido
bull 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
3rdt2 1 transmissor trata ACKNAKs
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 30111
3
copy 2005 by Pearson Education 3 - 30
rdt21 transmissor trata ACKNAKsperdidos
3rdt2 1 receptor trata ACKNAKs perdidos
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 31111
3
copy 2005 by Pearson Education 3 - 31
rdt21 receptor trata ACKNAKs perdidos
3rdt2 1 discussatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 32111
3
copy 2005 by Pearson Education 3 - 32
Transmissorbull Adiciona nuacutemero de sequumlecircncia ao pacotebull Dois nuacutemeros (0 e 1) bastam Por quecircbull Deve verificar se os ACKNAK recebidos estatildeo corrompidosbull Duas vezes o nuacutemero de estadosbull O estado deve ldquolembrarrdquo se o pacote ldquocorrenterdquo tem nuacutemero desequumlecircncia 0 ou 1
Receptorbull Deve verificar se o pacote recebido eacute duplicadobull Estado indica se o pacote 0 ou 1 eacute esperado
bull Nota receptor pode natildeo saber se seu uacuteltimo ACKNAK foi recebido pelotransmissor
rdt21 discussatildeo
3rdt2 2 um protocolo sem NAK
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 33111
3
copy 2005 by Pearson Education 3 - 33
bull Mesma funcionalidade do rdt21 usando somente ACKs
bull Em vez de enviar NAK o receptor envia ACK para o uacuteltimo pacoterecebido sem errobull Receptor deve incluir explicitamente o nuacutemero de sequumlecircncia do
pacote sendo reconhecidobull ACKs duplicados no transmissor resultam na mesma accedilatildeo do NAK
retransmissatildeo do pacote corrente
rdt22 um protocolo sem NAK
3rdt22 fragmentos do transmissor e do receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 34111
3
copy 2005 by Pearson Education 3 - 34
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
aguarda
0 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
3rdt3 0 canais com erros e perdas
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 35111
3
copy 2005 by Pearson Education 3 - 35
Nova hipoacutetese canal de transmissatildeo pode tambeacutem perder pacotes (dadosaos ACKs)bull Checksum nuacutemeros de sequumlecircncia ACKs retransmissotildees seratildeo de ajuda
mas natildeo o bastante
Abordagem transmissor espera um tempo ldquorazoaacutevelrdquo pelo ACKbull Retransmite se nenhum ACK for recebido nesse tempobull Se o pacote (ou ACK) estiver apenas atrasado (natildeo perdido)bull Retransmissatildeo seraacute duplicata mas os nuacutemeros de sequumlecircncia jaacute tratamcom issobull Receptor deve especificar o nuacutemero de sequumlecircncia do pacote sendoreconhecidobull Exige um temporizador decrescente
rdt30 canais com erros e perdas
3Transmissor rdt3 0
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 36111
3
copy 2005 by Pearson Education 3 - 36
Transmissor rdt30
3rdt3 0 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 37111
3
copy 2005 by Pearson Education 3 - 37
rdt30 em accedilatildeo
3rdt30 em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 38111
3
copy 2005 by Pearson Education 3 - 38
rdt30 em accedilatildeo
3Desempenho do rdt30
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 39111
3
copy 2005 by Pearson Education 3 - 39
Ttransmi
ssatildeo
= 8 kbpkt109 bs
= 8 microseg
bull U sender utilizaccedilatildeo ndash fraccedilatildeo de tempo do transmissor ocupadobull Um pacote de 1 KB cada 30 ms -gt 33 kBs de vazatildeo sobre um canal
bull De 1 Gbps
bull O protocolo de rede limita o uso dos recursos fiacutesicos
Usender =
00
00000= 000000
L R
RTT + L R=
L (tamanho do pacote em bits)R (taxa de transmissatildeo bps)
=
bull rdt30 funciona mas o desempenho eacute sofriacutevel
bull Exemplo enlace de 1 Gbps 15 ms de atraso de propagaccedilatildeo pacotes de 1 KB
Desempenho do rdt30
3rdt30 operaccedilatildeo pare e espere
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 40111
3
copy 2005 by Pearson Education 3 - 40
rdt30 operaccedilatildeo pare e espere
3Protocolos com paralelismo (pipelining)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 41111
3
copy 2005 by Pearson Education 3 - 41
Paralelismo transmissor envia vaacuterios pacotes ao mesmo tempo todosesperando para serem reconhecidos
bull Faixa de nuacutemeros de sequumlecircncia deve ser aumentadabull Armazenamento no transmissor eou no receptor
bull Duas formas geneacutericas de protocolos com paralelismo go-Back-N retransmissatildeoseletiva
(a) operaccedilatildeo do protocolo pare e espere (a) operaccedilatildeo do protocolo com paralelismo
o oco os co pa a e s o (p pe g)
3Pipelining aumento da utilizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 42111
3
copy 2005 by Pearson Education 3 - 42
Usender
=000
00000= 00000
L R0
RTT + L R=
p g ccedil
Aumento da utilizaccedilatildeopor um fator de 3
3Go-Back-N
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 43111
3
copy 2005 by Pearson Education 3 - 43
Transmissor
bull Nuacutemero de sequumlecircncia com k bits no cabeccedilalho do pacote
bull ldquojanelardquo de ateacute N pacotes natildeo reconhecidos consecutivos satildeo permitidos
bull ACK(n) reconhece todos os pacotes ateacute o nuacutemero de sequumlecircncia N (incluindo estelimite) ldquoACK cumulativordquobull Pode receber ACKs duplicados (veja receptor)
bull Temporizador para cada pacote enviado e natildeo confirmadobull Tempo de confirmaccedilatildeo (n) retransmite pacote n e todos os pacotes com
nuacutemero de sequumlecircncia maior que estejam dentro da janela
3GBN FSM estendida para o transmissor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 44111
3
copy 2005 by Pearson Education 3 - 44
p
3GBN FSM estendida para o receptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 45111
3
copy 2005 by Pearson Education 3 - 45
bull Somente ACK sempre envia ACK para pacotes corretamente recebidoscom o mais alto nuacutemero de sequumlecircncia em ordembull Pode gerar ACKs duplicadosbull Precisa lembrar apenas do expectedseqnum
bull Pacotes fora de ordembull Descarta (natildeo armazena) -gt natildeo haacute buffer de recepccedilatildeobull Reconhece pacote com o mais alto nuacutemero de sequumlecircncia em ordem
p p
3GBN em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 46111
3
copy 2005 by Pearson Education 3 - 46
ccedil
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 47111
3
copy 2005 by Pearson Education 3 - 47
bull Receptor reconhece individualmente todos os pacotes recebidoscorretamentebull Armazena pacotes quando necessaacuterio para eventual entrega em ordempara a camada superior
bull Transmissor somente reenvia os pacotes para os quais um ACK natildeo foirecebido
bull Transmissor temporiza cada pacote natildeo reconhecidobull Janela de transmissatildeobull N nuacutemeros de sequumlecircncia consecutivosbull Novamente limita a quantidade de pacotes enviados mas natildeoreconhecidos
3Retransmissatildeo seletiva janelas do transmissor e doreceptor
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 48111
3
copy 2005 by Pearson Education 3 - 48
receptor
3Retransmissatildeo seletiva
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 49111
3
copy 2005 by Pearson Education 3 - 49
TRANSMISSORDados da camada superiorbull Se o proacuteximo nuacutemero de sequumlecircncia disponiacutevel estaacute na janela envia o pacote
Tempo de confirmaccedilatildeo(n)bull Reenvia pacote n restart timerACK (n) em [sendbasesendbase+N]bull Marca pacote n como recebidobull 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]bull Envia ACK(n)bull Fora de ordem armazenabull Em ordem entrega (tambeacutem entrega pacotes armazenados em ordem) avanccedila
janela para o proacuteximo pacote ainda natildeo recebido
pkt n em [rcvbase-Nrcvbase-1]bull ACK(n)Caso contraacuteriobull Ignora
3Retransmissatildeo seletiva em accedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 50111
3
copy 2005 by Pearson Education 3 - 50
3Retransmissatildeo seletiva dilema
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 51111
3
copy 2005 by Pearson Education 3 - 51
Exemplobull Sequumlecircncias 0 1 2 3
bull Tamanho da janela = 3
bull Receptor natildeo vecirc diferenccedila nosdois cenaacuterios
bull
Incorretamente passa dadosduplicados como novos (figura a)
P Qual a relaccedilatildeo entre o espaccedilode numeraccedilatildeo sequumlencial e otamanho da janela
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 52111
3
copy 2005 by Pearson Education 3 - 52
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Vestrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP overviewRFCs 793 1122 1323 2018 2581
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 53111
3
copy 2005 by Pearson Education 3 - 53
bull Ponto-a-pontobull Um transmissor um receptor
bull Confiaacutevel sequumlencial byte stream
bull Natildeo haacute contornos de mensagensbull Pipelined (transmissatildeo de vaacuteriospacotes sem confirmaccedilatildeo)bull Controle de congestatildeo e de fluxo
definem tamanho da janelabull Buffers de transmissatildeo e de recepccedilatildeobull Dados full-duplex
bull Transmissatildeo bidirecional na mesmaconexatildeo
bull MSS maximum segment sizebull Orientado agrave conexatildeobull Apresentaccedilatildeo (troca de mensagens de
controle) inicia o estado do transmissore do receptor antes da troca de dados
bull Controle de fluxobull Transmissor natildeo esgota a capacidade
do receptor
3Estrutura do segmento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 54111
3
copy 2005 by Pearson Education 3 - 54
URG dados urgentes
(pouco usados)ACK campo de ACK
eacute vaacutelido
PSH produz envio dedados (pouco usado)
RST SYN FINestabelec de conexatildeo
(comandos decriaccedilatildeo e teacutermino)
nuacutemero de bytes
receptor estaacutepronto paraaceitar
contagem por
bytes de dados(natildeo segmentos)
Internet
checksum(como no UDP)
3Nuacutemero de sequumlecircncia e ACKs do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 55111
3
copy 2005 by Pearson Education 3 - 55
Nuacutemeros de sequumlecircncia
bull Nuacutemero do primeiro bytenos segmentos de dados
ACKsbull Nuacutemero do proacuteximo byteesperado do outro ladobullACK cumulativo
P Como o receptor tratasegmentos fora de ordem
bull A especificaccedilatildeo do TCP natildeodefine fica a criteacuterio do
implementador
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 56111
3
copy 2005 by Pearson Education 3 - 56
P como escolher o valor da temporizaccedilatildeo do TCPbull
Maior que o RTTbull Nota RTT varia
bull Muito curto temporizaccedilatildeo prematurabull Retransmissotildees desnecessaacuterias
bull Muito longo a reaccedilatildeo agrave perda de segmento fica lenta
P Como estimar o RTTbull SampleRTT tempo medido da transmissatildeo de um segmento ateacute a Respectivaconfirmaccedilatildeobull Ignora retransmissotildees e segmentos reconhecidos de forma cumulativa
bull SampleRTT varia de forma raacutepida eacute desejaacutevel um amortecedor para aestimativa do RTT
bull Usar vaacuterias medidas recentes natildeo apenas o uacuteltimo SampleRTT obtido
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 57111
3
copy 2005 by Pearson Education 3 - 57
EstimatedRTT = (1-α)EstimatedRTT + αSampleRTT
bull Meacutedia moacutevel com peso exponencial
bull Influecircncia de uma dada amostra decresce de forma exponencial
bull Valor tiacutepico α = 0125
3Exemplos de estimativa do RTT
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 58111
3
copy 2005 by Pearson Education 3 - 58
3 TCP Round Trip Time e temporizaccedilatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 59111
3
copy 2005 by Pearson Education 3 - 59
Definindo a temporizaccedilatildeobull EstimatedRTT mais ldquomargem de seguranccedilardquobull Grandes variaccedilotildees no EstimatedRTT -gt maior margem de seguranccedila
bull 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
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 60111
3
copy 2005 by Pearson Education 3 - 60
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo-orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP transferecircncia de dados confiaacutevel
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 61111
3
copy 2005 by Pearson Education 3 - 61
bull TCP cria serviccedilos de rdt em cima do serviccedilo natildeo-confiaacutevel do IPbull Pipelined segments
bull ACKs cumulativos
bull TCP usa tempo de retransmissatildeo simples
bull Retransmissotildees satildeo diparadas porbull Eventos de tempo de confirmaccedilatildeobull ACKs duplicados
bull Inicialmente considere um transmissor TCP simplificadobull IIgnore ACKs duplicadosbull Ignore controle de fluxo controle de congestionamento
3Eventos do transmissor TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 62111
3
copy 2005 by Pearson Education 3 - 62
Dado recebido da app
bull Crie um segmento com nuacutemero de sequumlecircnciabull seq eacute o nuacutemero do byte-stream do 1o byte de dados no segmentobull Inicie o temporizador se ele ainda natildeo estiver em execuccedilatildeo (pense no
temporizador para o mais antigo segmento natildeo-confirmado)bull Tempo de expiraccedilatildeo TimeOutInterval
Tempo de confirmaccedilatildeo
bull Retransmite o segmento que provocou o tempo de confirmaccedilatildeobull Reinicia o temporizador
ACK recebidobull Quando houver o ACK de segmentos anteriormente natildeo confirmadosbull Atualizar o que foi confirmadobull Iniciar o temporizador se houver segmentos pendentes
3 Transmissor TCP (simplificado)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 63111
3
copy 2005 by Pearson Education 3 - 63
NextSeqNum = InitialSeqNumSendBase = InitialSeqNumloop (forever)
switch(event) event dado recebido da aplicaccedilatildeo acima
cria segmento TCP com no de sequacuteecircnciaNextSeqNum
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 withsmallest sequence number
start timerevent ACK recebido com valor do campo de ACK do
yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged
segments)start timer
Comentaacuteriobull SendBase-1
uacuteltimo byte do
ACK cumulativo
Exemplobull SendBase-1 =
71 y= 73entatildeo o
receptor deseja73+ y gtSendBaseentatildeoo novo dado eacuteconfirmado
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 64111
3
copy 2005 by Pearson Education 3 - 64
Cenaacuterio com perdado ACK
Temporizaccedilatildeo prematuraACKs cumulativos
3 TCP cenaacuterios de retransmissatildeo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 65111
3
copy 2005 by Pearson Education 3 - 65
Cenaacuterio de ACK cumulativo
3Geraccedilatildeo de ACK [RFC 1122 RFC 2581]
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 66111
3
copy 2005 by Pearson Education 3 - 66
Evento no receptor
Segmento chega em ordemnatildeo haacute lacunassegmentos anteriores jaacute aceitos
Segmento chega em ordemnatildeo haacute lacunas
um 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 natildeochegarenvia ACK
Imediatamente envia um ACKcumulativo
Envia ACK duplicado indicando nuacutemerode sequumlecircncia do proacuteximo byte esperado
Reconhece imediatamente se oSegmento comeccedila na bordainferior do gap
3Retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 67111
3
copy 2005 by Pearson Education 3 - 67
bull Com frequumlecircncia o tempo de expiraccedilatildeo eacute relativamente longobull Longo atraso antes de reenviar um pacote perdido
bull Detecta segmentos perdidos por meio de ACKs duplicadosbull Transmissor frequumlentemente envia muitos segmentos back-to-back
bull Se o segmento eacute perdido haveraacute muitos ACKs duplicadosbull Se o transmissor recebe 3 ACKs para o mesmo dado ele supotildee que o
segmento apoacutes o dado confirmado foi perdidobull Retransmissatildeo raacutepida reenvia o segmento antes de o temporizador
expirar
3Algoritmo de retransmissatildeo raacutepida
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 68111
3
copy 2005 by Pearson Education 3 - 68
event ACK received with ACK field value of yif (y gt SendBase)
SendBase = yif (there are currently not-yet-acknowledged segments)
start timer
else increment count of dup ACKs received for yif (count of dup ACKs received for y = 3)
resend segment with sequence number y
ACK duplicado para umsegmento jaacute confirmado
retransmissatildeo raacutepida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 69111
3
copy 2005 by Pearson Education 3 - 69
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3 TCP controle de fluxo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 70111
3
copy 2005 by Pearson Education 3 - 70
bull lado receptor da conexatildeo TCPpossui um buffer de recepccedilatildeo
bull Serviccedilo de speed-matching
encontra a taxa de envio adequadaagrave taxa de vazatildeo da aplicaccedilatildeoreceptora
bull Processos de aplicaccedilatildeo podem ser
lentos para ler o buffer
Controle de fluxoTransmissor natildeo deve esgotar osbuffers de recepccedilatildeo enviandodados raacutepido demais
3Controle de fluxo TCP como funciona
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 71111
3
copy 2005 by Pearson Education 3 - 71
(suponha que o receptor TCP descarte segmentos fora de ordem)
bull Espaccedilo disponiacutevel no buffer
= RcvWindow
= RcvBuffer-[LastByteRcvd - LastByteRead]
bullReceptor informa a aacuterea disponiacutevelincluindo valor RcvWindow nossegmentos
bull Transmissor limita os dados natildeoconfimados ao RcvWindow
bull Garantia contra overflow no
buffer do receptor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 72111
3
copy 2005 by Pearson Education 3 - 72
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
bull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmentobull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 73111
3
copy 2005 by Pearson Education 3 - 73
TCP transmissor estabelece conexatildeo com o receptor antes de trocar segmentos dedados
bull Inicializar variaacuteveisbull Nuacutemeros de sequumlecircnciabull Buffers controle de fluxo (ex RcvWindow)
bull Cliente iniciador da conexatildeoSocket clientSocket = new Socket(ldquohostnameport number)
bull Servidor chamado pelo clienteSocket connectionSocket = welcomeSocketaccept()
Three way handshakePasso 1 sistema final cliente envia TCP SYN ao servidorbull Especifica nuacutemero de sequumlecircncia inicial
Passo 2 sistema final servidor que recebe o SYN responde com segmento SYNACKbull Reconhece o SYN recebidobull Aloca buffersbull Especifica o nuacutemero de sequumlecircncia inicial do servidor
Passo 3 o sistema final cliente reconhece o SYNACK
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 74111
3
copy 2005 by Pearson Education 3 - 74
Fechando uma conexatildeo
cliente fecha o socket clientSocketclose()
Passo 1 o cliente envia o segmento
TCP FIN ao servidor
Passo 2 servidor recebe FINresponde com ACK Fecha aconexatildeo envia FIN
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 75111
3
copy 2005 by Pearson Education 3 - 75
Passo 3 cliente recebe FINresponde com ACK
bull Entra ldquoespera temporizadardquo - vairesponder com ACK a FINsrecebidos
Passo 4 servidor recebe ACKConexatildeo fechada
Nota com uma pequenamodificaccedilatildeo pode-se manipularFINs simultacircneos
3Gerenciamento de conexatildeo TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 76111
3
copy 2005 by Pearson Education 3 - 76
Estados do cliente Estados do servidor
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 77111
copy 2005 by Pearson Education 3 - 77
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3Princiacutepios de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 78111
copy 2005 by Pearson Education 3 - 78
Congestionamentobull Informalmente ldquomuitas fontes enviando dados acima da capacidade da
rede de trataacute-losrdquo
bull Diferente de controle de fluxo
bull Sintomasbull Perda de pacotes (saturaccedilatildeo de buffer nos roteadores)bull Atrasos grandes (filas nos buffers dos roteadores)
bull Um dos 10 problemas mais importantes na Internet
3Causascustos do congestionamento cenaacuterio 1
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 79111
copy 2005 by Pearson Education 3 - 79
bull Dois transmissores doisreceptores
bull Um roteador buffersinfinitos
bull Natildeo haacute retransmissatildeobull Grandes atrasos quando
congestionadobull Maacutexima vazatildeo alcanccedilaacutevel
3Causascustos do congestionamento cenaacuterio 2
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 80111
copy 2005 by Pearson Education 3 - 80
bull Um roteador buffers finitos
bull Transmissor reenvia pacotes perdidos
3Causascustos do congestionamento cenaacuterio 2
λ λ
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 81111
copy 2005 by Pearson Education 3 - 81
bull Sempre vale (traacutefego bom)
bull ldquoperfeitardquo retransmissatildeo somente quando haacute perdas
bull Retransmissatildeo de pacotes atrasados (natildeo perdidos) torna maior (que o casoperfeito ) para o mesmo
λin
λout
=
λ
in
λ
out
gt
λinλ
out
ldquocustosrdquo do congestionamento
bull Mais trabalho (retransmissotildees) para um dado ldquotraacutefego bomrdquo
bull Retransmissotildees desnecessaacuterias enlace transporta vaacuterias coacutepias do mesmopacote
3Q t t i λ λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 82111
copy 2005 by Pearson Education 3 - 82
bull Quatro transmissoresbull Caminhos com muacuteltiplos saltos
bull Temporizaccedilotildeesretransmissotildees
λin
P o que acontece quando e
aumentam
λin
3 h λ
Causascustos do congestionamento cenaacuterio 3
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 83111
copy 2005 by Pearson Education 3 - 83
Outro ldquocustordquo do congestionamento
bull Quando o pacote eacute descartado qualquer capacidade de transmissatildeo quetenha sido anteriormente usada para aquele pacote eacute desperdiccedilada
o
s
p
e
dei
ro
A
h
o
s
p
e
d
ei
ro
B
o
u
t
3Abordagens do produto de controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 84111
copy 2005 by Pearson Education 3 - 84
Existem duas abordagens gerais para o problema de controle decongestionamentoControle de congestionamento fim-a-fimbull Natildeo usa realimentaccedilatildeo expliacutecita da redebull Congestionamento eacute inferido a partir das perdas e dos atrasosobservados nos sistemas finaisbull Abordagem usada pelo TCP
Controle de congestionamento assistido pela redebull Roteadores enviam informaccedilotildees para os sistemas finaisbull Bit uacutenico indicando o congestionamento (SNA DECbit TCPIP
ECN ATM)bull Taxa expliacutecita do transmissor poderia ser enviada
3Estudo de caso controle de congestionamento doserviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 85111
copy 2005 by Pearson Education 3 - 85
ABR available bit rate
bullldquoserviccedilo elaacutesticordquobull Se o caminho do transmissor estaacute pouco usadobull Transmissor pode usar a banda disponiacutevel
bull Se o caminho do transmissor estaacute congestionadobull Transmissor eacute limitado a uma taxa miacutenima garantida
Ceacutelulas RM (resource management) bull Enviadas pelo transmissor entremeadas com as ceacutelulas de dadosbull Bits nas ceacutelulas RM satildeo usados pelos comutadores (ldquoassistida pela rederdquo)bull NI bit natildeo aumenta a taxa (congestionamento leve)bull CI bit indicaccedilatildeo de congestionamento
bull As ceacutelulas RM satildeo devolvidos ao transmissor pelo receptor com os bits deindicaccedilatildeo intactos
3Estudo de caso controle de congestionamento do servidordo serviccedilo ATM ABR
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 86111
copy 2005 by Pearson Education 3 - 86
bull Campo ER (explicit rate) de dois bytes nas ceacutelulas RM bull Switch congestionado pode reduzir o valor de ER nas ceacutelulasbull O transmissor envia dados de acordo com essa vazatildeo miacutenima suportada nocaminho
bullBit EFCI nas ceacutelulas de dados marcado como 1 pelos switchescongestionados bull Se a ceacutelula de dados que precede a ceacutelula RM tem o bit EFCI setado oreceptor marca o bit CI na ceacutelula RM devolvida
3Camada de transporte
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 87111
copy 2005 by Pearson Education 3 - 87
bull 31 Serviccedilos da camada de transporte
bull 32 Multiplexaccedilatildeo e demultiplexaccedilatildeobull 33 Transporte natildeo orientado agrave conexatildeo UDP
bull 34 Princiacutepios de transferecircncia confiaacutevel de dados
bull 35 Transporte orientado agrave conexatildeo TCPbull Estrutura do segmento
bull Transferecircncia confiaacutevel de dadosbull Controle de fluxobull Gerenciamento de conexatildeo
bull 36 Princiacutepios de controle de congestionamento
bull 37 Controle de congestionamento do TCP
3bull Controle fim-a-fim (sem assistecircncia da rede)
TCP controle de congestionamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 88111
copy 2005 by Pearson Education 3 - 88
Controle fim a fim (sem assistecircncia da rede)
bull Transmissor limita a transmissatildeo
LastByteSent-LastByteAcked le CongWinbull Aproximadamente
bull CongWin eacute dinacircmico funccedilatildeo de congestionamento das redes detectadasComo o transmissor detecta o congestionamentobull Evento de perda = tempo de confirmaccedilatildeo bull ou 3 ACKs duplicados
Transmissor TCP reduz a taxa (CongWin) apoacutes o evento de perda
Trecircs mecanismosbull AIMDbull Partida lentabull Reaccedilatildeo a eventos de esgotamento de temporizaccedilatildeo
rate = CongWin RTT
Bytessec
3Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
TCP AIMD
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 89111
copy 2005 by Pearson Education 3 - 89
Reduccedilatildeo multiplicativa diminui o CongWin pela metade apoacutes o evento de perda
Aumento aditivo aumenta o CongWin com 1 MSS a cada RTT na ausecircncia de
eventos de perda probing
conexatildeo TCP de longa-vida
3 TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 90111
copy 2005 by Pearson Education 3 - 90
bull Quando a conexatildeo comeccedila CongWin = 1 MSSbull Exemplo MSS = 500 bytes e RTT = 200 milissegundosbull Taxa inicial = 20 kbps
bull Largura de banda disponiacutevel pode ser gtgt MSSRTTbull Desejaacutevel aumentar rapidamente ateacute a taxa respeitaacutevel
bull
Quando a conexatildeo comeccedila a taxa aumenta rapidamente de modoexponencial ateacute a ocorrecircncia do primeiro evento de perda
3hospedeiro A hospedeiro B
TCP Partida lenta
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 91111
copy 2005 by Pearson Education 3 - 91
bull Quando a conexatildeo comeccedila a taxa
aumenta rapidamente de modoexponencial ateacute a ocorrecircncia doprimeiro evento de perda bull Dobra o CongWin a cada RTTbull Faz-se incrementando o CongWin para cada ACK recebido
bull Sumaacuterio taxa inicial eacute lenta masaumenta de modo exponenciamenteraacutepido
um segment o
R T T
tempo
d o i s segment o s
quat r o segment o s
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 92111
copy 2005 by Pearson Education 3 - 92
bull Apoacutes 3 ACKs duplicados
bull CongWin eacute cortado pela metadebull Janela entatildeo cresce linearmente
bull Mas apoacutes evento de tempo de confirmaccedilatildeobull CongWin eacute ajustado para 1 MSSbull A janela entatildeo cresce exponencialmentevateacute um limite entatildeo cresce linearmente
Filosofiabull 3 ACKs indica que a rede eacute capaz de entregar alguns segmentosbull Tempo de confirmaccedilatildeo antes dos 3 ACKs duplicados eacute ldquomais alarmanterdquo
3Refinamento
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 93111
copy 2005 by Pearson Education 3 - 93
P Quando o aumento
exponencial deve tornar-selinear
R Quando CongWin obtiver12 do seu valor antes dotempo de confirmaccedilatildeo
Implementaccedilatildeo
bull Limite variaacutevelbull No evento de perda o limiar
eacute ajustado para 12 doCongWin logo antes do eventode perda
3Resumo controle de congestionamento TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 94111
copy 2005 by Pearson Education 3 - 94
bull Quando CongWin estaacute abaixo do limite (Threshold) o transmissorem fase de slow-start a janela cresce exponencialmente
bull Quando CongWin estaacute acima do limite (Threshold o transmissor emfase de congestion-avoidance a janela cresce linearmente
bull Quando ocorrem trecircs ACK duplicados o limiar (Threshold)eacuteajustado em CongWin2 e CongWin eacute ajustado para Threshold
bull Quando ocorre tempo de confirmaccedilatildeo o Threshold eacute ajustado paraCongWin2 e o CongWin eacute ajustado para 1 MSS
3 Evento Estado Accedilatildeo do transmissor TCP Comentaacuterio
TCP sender congestion control
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 95111
copy 2005 by Pearson Education 3 - 95
ACK recebidopara dadopreviamentenatildeo-confirmado
partida lenta(SS)
CongWin = CongWin +MSSIf (CongWin gt Threshold)ajusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Resulta em dobrar oCongWin a cada RTT
ACK recebidopara dadopreviamentenatildeo-confirmado
prevenccedilatildeo decongestiona-mento (CA)
CongWin = CongWin +MSS (MSSCongWin)
Aumento aditivo resultano aumento do CongWinem 1 MSS a cada RTT
Evento deperdadetectadopor trecircs ACKsduplicados
SS or CA Threshold = CongWin2CongWin = ThresholdAjusta estado paraldquoprevenccedilatildeo decongestionamentordquo
Recuperacao rapidaimplementando reduccedilatildeomultiplicativa o CongWinnatildeo cairaacute abaixo de 1MSS
Tempo de
confirmaccedilatildeo
SS or CA Threshold = CongWin2
CongWin = 1 MSSAjustar estado paraldquopartida lentardquo
Entra em partida lenta
ACK duplicado
SS or CA Incrementa o contador deACK duplicado para osegmento que estaacute sendo
CongWin e Thresholdnatildeo mudam
3 TCP throughput
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 96111
copy 2005 by Pearson Education 3 - 96
bull O que eacute throughout meacutedio do TCP como uma funccedilatildeo do tamanho da janela e doRTTignore a partida lenta
bull Deixe W ser o tamanho da janela quando ocorre perda
bull Quando a janela eacute W o throughput eacute WRTT
bull Logo apoacutes a perda a janela cai para W2 e o throughput para W2RTT
bull Throughout meacutedio 75 WRTT
3Futuro do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 97111
copy 2005 by Pearson Education 3 - 97
bull
Exemplo segmento de 1500 bytes RTT de 100 ms deseja 10 Gbps dethroughput
bull Requer tamanho de janela W = 83333 para os segmentos em tracircnsito
bull Throughput em termos da taxa de perda
bull L = 210-10 Uau
bull Satildeo necessaacuterias novas versotildees de TCP para alta velocidade
L RTT
MSS sdot000
3Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace do
Equumlidade do TCP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 98111
copy 2005 by Pearson Education 3 - 98
Objetivo de equumlidade se K sessotildees TCP compartilham o mesmo enlace dogargalo com largura de banda R cada uma deve ter taxa meacutedia de RK
3Duas sessotildees competindo pela bandabull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumenta
Por que o TCP eacute justo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 99111
copy 2005 by Pearson Education 3 - 99
bull O aumento aditivo fornece uma inclinaccedilatildeo de 1 quando a vazatildeo aumentabull Reduccedilatildeo multiplicativa diminui a vazatildeo proporcionalmente
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamentoaumento aditivo
perda reduz janela por um fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
3Equumlidade e UDP
Equumlidade
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 100111
copy 2005 by Pearson Education 3 - 100
Equumlidade e UDPbull Aplicaccedilotildees multimedia normalmente natildeo usam TCPbull Natildeo querem a taxa estrangulada pelo controle de congestionamento
bull Em vez disso usam UDPbull Trafega aacuteudioviacutedeo a taxas constantes toleram perda de pacotes
vaacuterea de pesquisa TCP amigaacutevel
Equumlidade e conexotildees TCP paralelas
bull Nada previne as aplicaccedilotildees de abrirem conexotildees paralelas entre 2 hospedeirosbull Web browsers fazem isso
bull Exemplo enlace de taxa R suportando 9 conexotildeesbull Novas aplicaccedilotildees pedem 1 TCP obteacutem taxa de R10bull Novas aplicaccedilotildees pedem 11 TCPs obteacutem R2
3P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviar
TCP modelagem de latecircncia
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 101111
copy 2005 by Pearson Education 3 - 101
P Quanto tempo demora para receber um objeto de um servidor Web apoacutes enviarum pedido
Ignorando o congestionamento o atraso eacute influenciado porbull Estabelecimento de conexatildeo TCPbull Atraso de transferecircncia de dadosbull Partida lenta
Notaccedilatildeo hipoacutetesesbull Suponha um enlace entre o cliente e o servidor com taxa de dados Rbull S MSS (bits)bull O tamanho do objeto (bits)bull Natildeo haacute retransmissotildees (sem perdas e corrupccedilatildeo de dados)
Tamanho da janela
bull Primeiro suponha janela de congestionamento fixa W segmentosbull Entatildeo janela dinacircmica modelagem partida lenta
3 Janela de congestionamento fixa (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 102111
copy 2005 by Pearson Education 3 - 102
Primeiro caso
WSR gt RTT + SR o ACKpara o primeiro segmentona janela retorna antes dovalor de janela dos dadosenviados
atraso = 2RTT + OR
3 Janela de congestionamento fixa (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 103111
copy 2005 by Pearson Education 3 - 103
Segundo casobull WSR lt RTT + SR espera
pelo ACK apoacutes enviar o valorda janela de dados
atraso = 2RTT + OR+ (K-1)[SR + RTT - WSR]
3bull Agora suponha que a janela cresce de acordo com os procedimentos da fase
TCP Modelagem de latecircncia partida lenta (1)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 104111
copy 2005 by Pearson Education 3 - 104
partida lenta
bull 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
bull Em que Q eacute o nuacutemero de vezes que o servidor ficaria bloqueado seo objeto fosse de tamanho infinito
bull E K eacute o nuacutemero de janelas que cobrem o objeto
R
S
R
S RTT P
R
O RTT Latency P )00(0 minusminus
+++=
0min minus= K Q P
3Componentes do atraso
TCP modelagem de latecircncia partida lenta (2)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 105111
copy 2005 by Pearson Education 3 - 105
Componentes do atraso bull 2 RTT para estabelecimento deconexatildeo e requisiccedilatildeo bull OR para transmitir um objeto bull Servidor com periacuteodos inativosdevido agrave partida lenta
Servidor inativo
P = minK-1Q vezesExemplobull OS = 15 segmentosbull K = 4 janelasbull Q = 2v P = minK-1Q = 2
Servidor inativo P = 2 tempos
3eacute d id b
tempo quando o servidor iniciao envio do segmento
=+RTTS
TCP modelagem de latecircncia partida lenta (3)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 106111
copy 2005 by Pearson Education 3 - 106
RSRSRTT PRTT RO
R
SRTT
R
SRTT
R
O
TempoBloqueioRTT R
O
P
k P
k
P
pp
)12(][2
]+2[2
2latecircncia
11
1
--+++=
-+++=
++=
-=
=aring
aring
tempo de bloqueio apoacutes ak-eacutesima janela2 1
R
SRTT
R
Sk =uacute
ucirc
ugraveecirc
euml
eacute -++
-
ateacute quando o servidor recebe
reconhecimento
+RTT R
tempo para enviar a k-eacutesima janela2 1 =-R
Sk
3Lembre que K = nuacutemero de janelas que cobrem um objetoComo calculamos o valor de K
TCP modelagem de latecircncia partida lenta (4)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 107111
copy 2005 by Pearson Education 3 - 107
+=
+ge=
geminus=
ge+++=
ge+++=minus
minus
)0(log
)0(logmin
00min
000min
000min
0
0
000
000
S
O
S
Ok k
S
Ok
S Ok
OS S S k K
k
k
k
O caacutelculo do nuacutemero Q de inatividade por objeto de tamanho infinitoeacute similar (veja HW)
3bull Presuma que uma paacutegina Web consista embull 1 paacutegina HTML de base (de tamanho O bit)bull M imagens (cada uma de tamanho O bit)
Modelagem HTTP
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 108111
copy 2005 by Pearson Education 3 - 108
bull M imagens (cada uma de tamanho O bit)
bull HTTP natildeo persistentebull M + 1 conexotildees TCP nos servidoresbull Tempo de resposta = (M + 1)OR + (M + 1)2RTT + soma dos periacuteodos de
inatividade
bull HTTP persistentebull 2 RTT para requisitar e receber o arquivo HTML de base
bull 1 RTT para requisitar e receber M imagensbull Tempo de resposta = (M + 1)OR + 3RTT + soma dos periacuteodos de
inatividade
bull HTTP natildeo persistente com X conexotildees paralelasbull Suponha o inteiro MXbull 1 conexatildeo TCP para o arquivo de base
bull MX ajusta as conexatildeo paralelas para imagensbull Tempo de resposta = (M + 1)OR + (MX + 1)2RTT + soma dos periacuteodos
de inatividade
300
00
RTT = 100 mseg O = 5 Kbytes M = 10 e X = 5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 109111
copy 2005 by Pearson Education 3 - 109
0
00
0
0
00
00
0000
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para pouca largura de banda tempo de conexatildeo e resposta dominados pelotempo de transmissatildeoConexotildees persistentes oferecem pequena vantagem sobre as conexotildeesparalelas
300
RTT =1 seg O = 5 Kbytes M=10 and X=5
Tempo de resposta HTTP (emsegundos)
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 110111
copy 2005 by Pearson Education 3 - 110
0
00
00
00
00
00
00
00
00
Kbps
000
Kbps
Mbps0 00
Mbps
non-persistent
persistent
parallel non-
persistent
Para longos RTT o tempo de resposta eacute dominado por estabelecimento TCPe atrasos partida lenta Conexotildees persistentes agora oferecem uma melhoraImportante particularmente em redes com produto banda atraso grande
3bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
Resumo
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede
5122018 Kurose Slides 3 - slidepdfcom
httpslidepdfcomreaderfullkurose-slides-3 111111
copy 2005 by Pearson Education 3 - 111
bull Princiacutepios por traacutes dos serviccedilos da camada de transporte
bull Multiplexaccedilatildeodemultiplexaccedilatildeobull Transferecircncia de dados confiaacutevelbull Controle de fluxobull Controle de congestionamento
bull Instanciaccedilatildeo e implementaccedilatildeo na Internetbull UDP
bull TCPA seguirbull Saiacutemos da ldquobordardquo da rede (camadas de aplicaccedilatildeo e de transporte)bull Vamos para o ldquonuacutecleordquo da rede