© 2010 pearson prentice hall. todos os direitos reservados.slide 1 capítulo 3 camada de transporte...
TRANSCRIPT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 1
Capiacutetulo 3 Camada de transporte
Nota sobre o uso destes slides pptEstamos disponibilizando estes slides gratuitamente a todos(professores alunos leitores) Eles estatildeo em formato do PowerPoint para que vocecirc possa incluir modificar e excluir slides (incluindo este) e o conteuacutedo do slide de acordo com suas necessidades Eles obviamente representam muito trabalho da nossa parte Em retorno pelo uso pedimos apenas o seguinte Se vocecirc usar estes slides (por exemplo em sala de aula) sem muita alteraccedilatildeo que mencione sua fonte (afinal gostamos que as pessoas usem nosso livro)Se vocecirc postar quaisquer slides sem muita alteraccedilatildeo em um site Web que informe que eles foram adaptados dos (ou talvez idecircnticos aos) nossos slides e inclua nossa nota de direito autoral desse material
Obrigado e divirta-se JFKKWR
Todo o material copyright 1996-2009J F Kurose e K W Ross Todos os direitos reservados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 2
Capiacutetulo 3 Camada de transporteObjetivos do capiacutetulo entender princiacutepios
por traacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demul-tiplexaccedilatildeo transferecircncia de
dados confiaacutevel controle de fluxo controle de
congestionamento
aprender sobre os protocolos da camada de transporte na Internet UDP transporte sem
conexatildeo TCP transporte orientado
a conexatildeo controle de
congestionamento TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 3
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 4
Serviccedilos e protocolos de transporte oferecem comunicaccedilatildeo loacutegica
entre processos de aplicaccedilatildeo rodando em hospedeiros diferentes
protocolos de transporte rodam em sistemas finais lado remetente divide as
msgs da aplicaccedilatildeo em segmentos passa agrave camada de rede
lado destinataacuterio remonta os segmentos em msgs passa agrave camada de aplicaccedilatildeo
mais de um protocolo de transporte disponiacutevel agraves aplicaccedilotildees Internet TCP e UDP
aplicaccedilatildeotransporte
redeenlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
transporte loacutegico fim a fim
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 5
Camada de transporte versus rede camada de rede
comunicaccedilatildeo loacutegica entre hospedeiros
camada de transporte comunicaccedilatildeo loacutegica entre processos conta com e amplia
os serviccedilos da camada de rede
analogia com a famiacutelia12 crianccedilas mandando
carta a 12 crianccedilas processos = crianccedilas msgs da aplicaccedilatildeo =
cartas nos envelopes hospedeiros = casas protocolo de transporte
= Ana e Bill protocolo da camada de
rede = serviccedilo postal
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 2
Capiacutetulo 3 Camada de transporteObjetivos do capiacutetulo entender princiacutepios
por traacutes dos serviccedilos da camada de transporte multiplexaccedilatildeo
demul-tiplexaccedilatildeo transferecircncia de
dados confiaacutevel controle de fluxo controle de
congestionamento
aprender sobre os protocolos da camada de transporte na Internet UDP transporte sem
conexatildeo TCP transporte orientado
a conexatildeo controle de
congestionamento TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 3
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 4
Serviccedilos e protocolos de transporte oferecem comunicaccedilatildeo loacutegica
entre processos de aplicaccedilatildeo rodando em hospedeiros diferentes
protocolos de transporte rodam em sistemas finais lado remetente divide as
msgs da aplicaccedilatildeo em segmentos passa agrave camada de rede
lado destinataacuterio remonta os segmentos em msgs passa agrave camada de aplicaccedilatildeo
mais de um protocolo de transporte disponiacutevel agraves aplicaccedilotildees Internet TCP e UDP
aplicaccedilatildeotransporte
redeenlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
transporte loacutegico fim a fim
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 5
Camada de transporte versus rede camada de rede
comunicaccedilatildeo loacutegica entre hospedeiros
camada de transporte comunicaccedilatildeo loacutegica entre processos conta com e amplia
os serviccedilos da camada de rede
analogia com a famiacutelia12 crianccedilas mandando
carta a 12 crianccedilas processos = crianccedilas msgs da aplicaccedilatildeo =
cartas nos envelopes hospedeiros = casas protocolo de transporte
= Ana e Bill protocolo da camada de
rede = serviccedilo postal
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 3
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 4
Serviccedilos e protocolos de transporte oferecem comunicaccedilatildeo loacutegica
entre processos de aplicaccedilatildeo rodando em hospedeiros diferentes
protocolos de transporte rodam em sistemas finais lado remetente divide as
msgs da aplicaccedilatildeo em segmentos passa agrave camada de rede
lado destinataacuterio remonta os segmentos em msgs passa agrave camada de aplicaccedilatildeo
mais de um protocolo de transporte disponiacutevel agraves aplicaccedilotildees Internet TCP e UDP
aplicaccedilatildeotransporte
redeenlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
transporte loacutegico fim a fim
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 5
Camada de transporte versus rede camada de rede
comunicaccedilatildeo loacutegica entre hospedeiros
camada de transporte comunicaccedilatildeo loacutegica entre processos conta com e amplia
os serviccedilos da camada de rede
analogia com a famiacutelia12 crianccedilas mandando
carta a 12 crianccedilas processos = crianccedilas msgs da aplicaccedilatildeo =
cartas nos envelopes hospedeiros = casas protocolo de transporte
= Ana e Bill protocolo da camada de
rede = serviccedilo postal
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 4
Serviccedilos e protocolos de transporte oferecem comunicaccedilatildeo loacutegica
entre processos de aplicaccedilatildeo rodando em hospedeiros diferentes
protocolos de transporte rodam em sistemas finais lado remetente divide as
msgs da aplicaccedilatildeo em segmentos passa agrave camada de rede
lado destinataacuterio remonta os segmentos em msgs passa agrave camada de aplicaccedilatildeo
mais de um protocolo de transporte disponiacutevel agraves aplicaccedilotildees Internet TCP e UDP
aplicaccedilatildeotransporte
redeenlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
transporte loacutegico fim a fim
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 5
Camada de transporte versus rede camada de rede
comunicaccedilatildeo loacutegica entre hospedeiros
camada de transporte comunicaccedilatildeo loacutegica entre processos conta com e amplia
os serviccedilos da camada de rede
analogia com a famiacutelia12 crianccedilas mandando
carta a 12 crianccedilas processos = crianccedilas msgs da aplicaccedilatildeo =
cartas nos envelopes hospedeiros = casas protocolo de transporte
= Ana e Bill protocolo da camada de
rede = serviccedilo postal
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 5
Camada de transporte versus rede camada de rede
comunicaccedilatildeo loacutegica entre hospedeiros
camada de transporte comunicaccedilatildeo loacutegica entre processos conta com e amplia
os serviccedilos da camada de rede
analogia com a famiacutelia12 crianccedilas mandando
carta a 12 crianccedilas processos = crianccedilas msgs da aplicaccedilatildeo =
cartas nos envelopes hospedeiros = casas protocolo de transporte
= Ana e Bill protocolo da camada de
rede = serviccedilo postal
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 6
redeenlacefiacutesica
redeenlacefiacutesica
Protocolos da camada de transporte da Internet remessa confiaacutevel e em
ordem (TCP) controle de
congestionamento controle de fluxo estabelecimento da conexatildeo
remessa natildeo confiaacutevel e desordenada UDP extensatildeo sem luxo do IP pelo
ldquomelhor esforccedilordquo serviccedilos natildeo disponiacuteveis
garantias de atraso garantias de largura de
banda
aplicaccedilatildeotransporte
redeenlacefiacutesica
networkdata linkphysical
redeenlacefiacutesica
redeenlacefiacutesica
redeenlacefiacutesica rede
enlacefiacutesica
aplicaccedilatildeotransporte
redeenlacefiacutesica
logical end-end transport
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 7
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 8
Multiplexaccedilatildeodemultiplexaccedilatildeo
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P1 aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
aplicaccedilatildeo
transporte
rede
enlace
fiacutesica
P2P3 P4P1
hospedeiro 1 hospedeiro 2 hospedeiro 3
= processo = socket
entregando segmentosrecebidos ao socket correto
demultiplexaccedilatildeo no destinataacuteriocolhendo dados de muacuteltiplossockets envelopando dadoscom cabeccedilalho (usados depoispara demultiplexaccedilatildeo)
multiplexaccedilatildeo no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 9
Como funciona a demultiplexaccedilatildeo hospedeiro recebe datagramas IP
cada datagrama tem endereccedilo IP de origem endereccedilo IP de destino
cada datagrama carrega 1 segmento da camada de transporte
cada segmento tem nuacutemero de porta de origem destino
hospedeiro usa endereccedilos IP amp nuacutemeros de porta para direcionar segmento ao socket apropriado
porta origem porta destino
32 bits
dados daaplicaccedilatildeo
(mensagem)
outros campos de cabeccedilalho
formato do segmento TCPUDP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 10
Demultiplexaccedilatildeo natildeo orientada para conexatildeo cria sockets com nuacutemeros
de portaDatagramSocket mySocket1 = new
DatagramSocket(12534)DatagramSocket mySocket2 = new
DatagramSocket(12535)
socket UDP identificado por tupla de dois elementos
(endereccedilo IP destino nuacutemero porta destino)
quando hospedeiro recebe segmento UDP verifica nuacutemero de porta
de destino no segmento direciona segmento UDP
para socket com esse nuacutemero de porta
datagramas IP com diferentes endereccedilos IP de origem eou nuacutemeros de porta de origem direcionados para o mesmo socket
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 11
DatagramSocket serverSocket = new DatagramSocket(6428)
ClienteIPB
P2
cliente IP A
P1P1P3
servidorIP C
SP 6428DP 9157
SP 9157DP 6428
SP 6428DP 5775
SP 5775DP 6428
SP oferece ldquoendereccedilo de retornordquo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 12
Demultiplexaccedilatildeo orientada para conexatildeo
socket TCP identificado por tupla de 4 elementos endereccedilo IP de origem nuacutemero de porta de origem endereccedilo IP de destino nuacutemero de porta de
destino hospedeiro destinataacuterio
usa todos os quatro valores para direcionar segmento ao socket apropriado
hospedeiro servidor pode admitir muitos sockets TCP simultacircneos cada socket identificado
por usa proacutepria tupla de 4 servidores Web tecircm
diferentes sockets para cada cliente conectando HTTP natildeo persistente teraacute
diferentes sockets para cada requisiccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 13
clienteIPB
P1
cliente IP A
P1P2P4
servidorIP C
SP 9157DP 80
SP 9157DP 80
P5 P6 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 14
Demultiplexaccedilatildeo orientadapara conexatildeo servidor Web threaded
clienteIPB
P1
cliente IP A
P1P2
servidorIP C
SP 9157DP 80
SP 9157DP 80
P4 P3
D-IPCS-IP AD-IPC
S-IP B
SP 5775DP 80
D-IPCS-IP B
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 15
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 16
UDP User Datagram Protocol [RFC 768]
protocolo de transporte da Internet ldquosem luxordquo baacutesico
serviccedilo de ldquomelhor esforccedilordquo segmentos UDP podem ser perdidos entregues agrave aplicaccedilatildeo
fora da ordem sem conexatildeo
sem handshaking entre remetente e destinataacuterio UDP
cada segmento UDP tratado independente dos outros
Por que existe um UDP
sem estabelecimento de conexatildeo (que pode gerar atraso)
simples sem estado de conexatildeo no remetente destinataacuterio
cabeccedilalho de segmento pequeno
sem controle de congestionamento UDP pode transmitir o mais raacutepido possiacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 17
UDP mais normalmente usado para
streaming de aplicaccedilotildees de multimiacutedia tolerante a perdas sensiacutevel agrave taxa
outros usos do UDP DNS SNMP
transferecircncia confiaacutevel por UDP aumenta confiabilidade na camada de aplicaccedilatildeo recuperaccedilatildeo de erro
especiacutefica da aplicaccedilatildeo
porta origem porta dest32 bits
dados daaplicaccedilatildeo
(mensagem)
formato de segmento UDP
tamanho soma veriftamanho
em bytes dosegmento UDP
incluindocabeccedilalho
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 18
Soma de verificaccedilatildeo UDP
remetente trata conteuacutedo de
segmento como sequecircncia de inteiros de 16 bits
soma de verificaccedilatildeo (checksum) adiccedilatildeo (soma por complemento de 1) do conteuacutedo do segmento
remetente coloca valor da soma de verificaccedilatildeo no campo de soma de verificaccedilatildeo UDP
destinataacuterio calcula soma de verificaccedilatildeo
do segmento recebido verifica se soma de
verificaccedilatildeo calculada igual ao valor do campo de soma de verificaccedilatildeo NAtildeO ndash erro detectado SIM ndash nenhum erro
detectado Mas pode haver erros mesmo assim Veja mais adiante hellip
objetivo detectar ldquoerrosrdquo (p e bits invertidos) no segmento transmitido
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 19
Exemplo de soma de verificaccedilatildeo da Internet nota
Ao somar nuacutemeros um carryout do bit mais significativo precisa ser somado ao resultado
exemplo somar 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
contorna
somasoma de
verificaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 20
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 21
Princiacutepios de transferecircncia confiaacutevel de dados
importante nas camadas de aplicaccedilatildeo transporte e enlace lista dos 10 mais importantes toacutepicos de redes caracteriacutesticas do canal confiaacutevel determinaratildeo complexidade
do protocolo de transferecircncia confiaacutevel (rdt)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 22
Transferecircncia confiaacutevel de dados introduccedilatildeo
ladoremetente
ladodestinataacuterio
rdt_send() chamado de cima (p e pela apl) Dados passados para
remeter agrave camada superior do destinataacuterio
udt_send() chamado pela rdt para transferir pacote por canal natildeo confiaacutevel ao destinataacuterio
rdt_rcv() chamado quando pacote chega no lado destinataacuterio
do canal
deliver_data() chamado pela rdt para remeter dados para
cima
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 23
vamos desenvolver de forma incremental os lados remetente e
destinataacuterio do protocolo de transferecircncia confiaacutevel de dados (rdt)
considerar apenas a transf de dados unidirecional mas informaccedilotildees de controle fluiratildeo nas duas direccedilotildees
usar maacutequinas de estado finito (FSM) para especificar remetente destinataacuterio
estado1 estado
2
evento causando transiccedilatildeo de estadoaccedilotildees tomadas sobre transiccedilatildeo de estado
estado quando neste ldquoestadordquo proacuteximo
estado determinado
exclusivamente pelo proacuteximo
evento
eventoaccedilotildees
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 24
Rdt10 transferecircncia confiaacutevel por canal confiaacutevel canal subjacente perfeitamente confiaacutevel
sem erros de bit sem perda de pacotes
FSMs separadas para remetente e destinataacuterio remetente envia dados para canal subjacente destinataacuterio lecirc dados do canal subjacente
Esperachamadade cima packet = make_pkt(dados)
udt_send(pacote)
rdt_send(dados)extract (pacote dados)deliver_data(dados)
Esperachamadade baixo
rdt_rcv(pacote)
remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 25
Rdt20 canal com erros de bit
canal subjacente pode inverter bits no pacote soma de verificaccedilatildeo para detectar erros de bit
a questatildeo como recuperar-se dos erros reconhecimentos (ACKs) destinataacuterio diz explicitamente
ao remetente que o pacote foi recebido OK reconhecimentos negativas (NAKs) destinataacuterio diz
explicitamente ao remetente que o pacote teve erros remetente retransmite pacote ao receber NAK
novos mecanismos no rdt20 (aleacutem do rdt10) detecccedilatildeo de erro feedback do destinataacuterio msgs de controle (ACKNAK)
destinataacuterio-gtremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 26
rdt20 especificaccedilatildeo da FSM
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixoremetente
destinataacuteriordt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 27
rdt20 operaccedilatildeo sem erros
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 28
rdt20 cenaacuterio de erro
Esperachamadade cima
snkpkt = make_pkt(dados soma_verif)udt_send(pctenv)
extract(pctrecdados)deliver_data(dados)udt_send(ACK)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
rdt_rcv(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp isNAK(pctrec)
udt_send(NAK)
rdt_rcv(pctrec) ampamp corrupt(pctrec)
EsperaACK ou
NAK
Esperachamadade baixo
rdt_send(dados)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 29
rdt20 tem uma falha fatal
O que acontece se ACKNAK for corrompido
remetente natildeo sabe o que aconteceu no destinataacuterio
natildeo pode simplesmente retransmitir possiacutevel duplicaccedilatildeo
tratando de duplicatas remetente retransmite
pacote atual se ACKNAK corrompido
remetente acrescenta nuacutemero de sequecircncia a cada pacote
destinataacuterio descarta (natildeo sobe) pacote duplicado
remetente envia um pacote depois espera resposta dodestinataacuterio
pare e espere
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 30
rdt21 remetente trata de ACKNAKs corrompidos
Esperachamada 0
de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
EsperaACK ouNAK 0 udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isNAK(pctrec) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec)
Esperachamada 1
de cima
EsperaACK ou NAK 1
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 31
Espera0 decima
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq0(pctrec)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv)
Espera1 de baixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq0(pctrec)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK chksum)udt_send(pctenv) rdt_rcv(pctrec) ampamp
(corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp not corrupt(pctrec) ampamp has_seq1(pctrec)
rdt_rcv(pctrec) ampamp (corrupt(pctrec)
pctenv = make_pkt(ACK chksum)udt_send(pctenv)
pctenv = make_pkt(NAK chksum)udt_send(pctenv)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 32
rdt21 discussatildeoremetente seq acrescentado
ao pkt dois s seq (01)
bastaratildeo Por quecirc deve verificar se
ACKNAK recebido foi corrompido
o dobro de estados estado de ldquolembrarrdquo
se pacote ldquoatualrdquo tem seq 0 ou 1
destinataacuterio deve verificar se
pacote recebido estaacute duplicado estado indica se 0 ou
1 eacute seq esperado do pacote
nota destinataacuterio natildeo sabe se seu uacuteltimo ACKNAK foi recebido OK no remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 33
rdt22 um protocolo sem NAK mesma funcionalidade de rdt21 usando apenas ACKs em vez de NAK destinataacuterio envia ACK para uacuteltimo
pacote recebido OK destinataacuterio precisa incluir explicitamente seq do pacote
sendo reconhecido com ACK ACK duplicado no remetente resulta na mesma accedilatildeo
de NAK retransmitir pacote atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 34
rdt22 fragmentos do remetente destinataacuterio
Esperachamada 0 de cima
pctenv = make_pkt(0 dados checksum)udt_send(pctenv)
rdt_send(dados)
udt_send(pctenv)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) || isACK(pctrec1) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
EsperaACK
0
fragmento FSMdo remetente
Espera0 debaixo
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp has_seq1(pctrec) extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(ACK1 chksum)udt_send(pctenv)
rdt_rcv(pctrec) ampamp (corrupt(pctrec) || has_seq1(pctrec))
udt_send(pctenv)fragmento FSMdo destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 35
rdt30 canais com erros e perdanova suposiccedilatildeo canal
subjacente tambeacutem pode perder pacotes (dados ou ACKs) soma de verificaccedilatildeo
seq ACKs retransmissotildees seratildeo uacuteteis mas natildeo suficientes
teacutecnica remetente espera quantidade ldquorazoaacutevelrdquo de tempo por ACK
retransmite se natildeo chegar ACK nesse tempo
se pct (ou ACK) simplesmente atrasado (natildeo perdido) retransmissatildeo seraacute
duplicada mas os s de seq jaacute cuidam disso
destinataacuterio deve especificar seq do pacote sendo reconhecido com ACK
requer contador regressivo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 36
remetente rdt30pctenv = make_pkt(0 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
EsperaACK0
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec1) )
Esperachamada 1
de cima
pctenv = make_pkt(1 dados checksum)udt_send(pctenv)start_timer
rdt_send(dados)
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec0)
rdt_rcv(pctrec) ampamp ( corrupt(pctrec) ||isACK(pctrec0) )
rdt_rcv(pctrec) ampamp notcorrupt(pctrec) ampamp isACK(pctrec1)
stop_timerstop_timer
udt_send(pctenv)start_timer
timeout
udt_send(pctenv)start_timer
timeout
rdt_rcv(pctrec)
Esperachamada 0
de cima
EsperaACK1
rdt_rcv(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 37
rdt30 em accedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 38
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 39
Desempenho do rdt30 rdt30 funciona mas com desempenho ruim ex enlace 1 Gbps 15 ms atraso propriedade
pacote 8000 bits
U remet utilizaccedilatildeo ndash fraccedilatildeo do tempo remet ocupado enviando
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
Pct 1 KB cada 30 ms -gt 33 kBs vazatildeo em enlace de 1 Gbps
protocolo de rede limita uso de recursos fiacutesicos
ndosmicrosseguRLdtrans 8
bps10bits8000
9
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 40
rdt30 operaccedilatildeo pare e espere
U remet = 0008
30008 = 000027
microseconds
L R RTT + L R
=
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 41
Protocolos com paralelismoparalelismo remetente permite muacuteltiplos
pacotes ldquono arrdquo ainda a serem reconhecidos intervalo de nuacutemeros de sequecircncia deve ser
aumentado buffering no remetente eou destinataacuterio
duas formas geneacutericas de protocolo com paralelismo Go-Back-N repeticcedilatildeo seletiva
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 42
Paralelismo utilizaccedilatildeo aumentada
U remet = 0024 30008
= 00008 microseconds
3 L R RTT + L R
=
Aumento de utilizaccedilatildeopor fator de 3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 43
Protocolos com paralelismoGo-back-N visatildeo geral remetente ateacute N pacotes
natildeo reconhecidos na pipeline
destinataacuterio soacute envia ACKs cumulativos natildeo envia pct ACK se
houver uma lacuna remetente tem
temporizador para pct sem ACK mais antigo se o temporizador
expirar retransmite todos os pacotes sem ACK
Repeticcedilatildeo seletiva visatildeo geral remetente ateacute pacotes natildeo
reconhecidos na pipeline destinataacuterio reconhece
(ACK) pacotes individuais remetente manteacutem
temporizador para cada pct sem ACK se o temporizador expirar
retransmite apenas o pacote sem ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 44
Go-Back-Nremetente seq de k bits no cabeccedilalho do pacote ldquojanelardquo de ateacute N pcts consecutivos sem ACK permitidos
ACK(n) ACK de todos pcts ateacute inclusive seq n ndash ldquoACK cumulativordquo pode receber ACKs duplicados (ver destinataacuterio)
temporizador para cada pacote no ar timeout(n) retransmite pct n e todos pcts com seq mais
alto na janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 45
GBN FSM estendido no remetente
Espera start_timerudt_send(pctenv[base])udt_send(pctenv[base+1])hellipudt_send(pctenv[nextseqnum-1])
timeout
rdt_send(dados)
if (nextseqnum lt base+N) pctenv[nextseqnum] = make_pkt(nextseqnumdadoschksum) udt_send(pctenv[nextseqnum]) if (base = = nextseqnum) start_timer nextseqnum++ else refuse_data(dados)
base = getacknum(pctrec)+1If (base = = nextseqnum) stop_timer else start_timer
rdt_rcv(pctrec) ampamp notcorrupt(pctrec)
base = 1nextseqnum = 1
rdt_rcv(pctrec) ampamp corrupt(pctrec)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 46
GBN FSM estendido no destinataacuterio
apenas ACK sempre envia ACK para pct recebido corretamente com seq mais alto em ordem pode gerar ACKs duplicados soacute precisa se lembrar de expectedseqnum
pacote fora de ordem descarta (natildeo manteacutem em buffer) -gt sem buffering no
destinataacuterio reenvia ACK do pct com seq mais alto em ordem
Espera
udt_send(pctenv)default
rdt_rcv(pctrec) ampamp notcurrupt(pctrec) ampamp hasseqnum(pctrecexpectedseqnum)
extract(pctrecdados)deliver_data(dados)pctenv = make_pkt(expectedseqnumACKchksum)udt_send(pctenv)expectedseqnum++
expectedseqnum = 1pctenv = make_pkt(expectedseqnumACKchksum)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 47
GBN em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 48
Repeticcedilatildeo seletiva destinataacuterio reconhece individualmente todos
os pacotes recebidos de modo correto manteacutem pcts em buffer se for preciso para
eventual remessa em ordem para a camada superior
remetente soacute reenvia pcts para os quais o ACK natildeo foi recebido temporizador no remetente para cada pct sem ACK
janela do remetente N seq consecutivos novamente limita s seq de pcts enviados sem
ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 49
Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 50
Repeticcedilatildeo seletiva
dados de cima se proacutex seq disponiacutevel
na janela envia pcttimeout(n) reenvia pct n reinicia
temporizadorACK(n) em
[sendbasesendbase+N] marca pct n como
recebido se n menor pct com ACK
avanccedila base da janela para proacuteximo seq sem ACK
pct n em [rcvbase rcvbase+N-1]
envia ACK(n) fora de ordem buffer em ordem entrega
(tambeacutem entrega pcts em ordem no buffer) avanccedila janela para proacuteximo pct ainda natildeo recebido
pct n em [rcvbase-Nrcvbase-1]
ACK(n)caso contraacuterio ignora
destinataacuterioremetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 51
Repeticcedilatildeo seletiva em operaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 52
Repeticcedilatildeo seletivadilemaExemplo seq 0 1 2 3 tamanho janela = 3 destinataacuterio natildeo vecirc
diferenccedila nos dois cenaacuterios
passa incorretamente dados duplicados como novos em (a)
P Qual o relacionamento entre tamanho do seq e tamanho de janela
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 53
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 54
TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
dados full duplex dados bidirecionais fluem
na mesma conexatildeo MSS tamanho maacuteximo
do segmento orientado a conexatildeo
apresentaccedilatildeo (troca de msgs de controle) inicia estado do remetente e destinataacuterio antes da troca de dados
fluxo controlado remetente natildeo
sobrecarrega destinataacuterio
ponto a ponto um remetente um
destinataacuterio cadeia de bytes confiaacutevel
em ordem sem ldquolimites de
mensagemrdquo paralelismo
congestionamento TCP e controle de fluxo definem tamanho da janela
buffers de envio amp recepccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 55
Estrutura do segmento TCP
porta origem porta destino32 bits
dados daaplicaccedilatildeo
(tamanho variaacutevel)
nuacutemero sequecircncianuacutemero reconhecimento
janela recepccedilatildeoponteiro dados urgsoma verificaccedilatildeoFSRPAUcompr
cabnatildeo
usado
opccedilotildees (tamanho variaacutevel)
URG dados urgentes (quase natildeo usado)
ACK ACKvaacutelido
PSH empurrar dadosagora (quase natildeo
usado)RST SYN FIN
estab conexatildeo(comandos setup
teardown)
bytes destinataacuteriopode aceitar
contagem porbytes de dados(natildeo segmentos)
soma de verificaccedilatildeoda Internet
(como em UDP)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 56
s sequecircncia e ACKs do TCP
cenaacuterio telnet simples
rsquos de sequecircncia ldquonuacutemerordquo na cadeia de
bytes do 1o byte nos dados do segmento
ACKs seq do proacuteximo byte
esperado do outro lado ACK cumulativo
P como o destinataacuterio trata segmentos fora de ordem R TCP natildeo diz ndash a
criteacuterio do implementador
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 57
Tempo de ida e volta e timeout do TCP
P Como definir o valor de timeout do TCP
maior que RTT mas RTT varia
muito curto timeout prematuro retransmissotildees
desnecessaacuterias muito longo baixa
reaccedilatildeo a perda de segmento
P Como estimar o RTT SampleRTT tempo medido
da transmissatildeo do segmento ateacute receber o ACK ignora retransmissotildees
SampleRTT variaraacute queremos RTT estimado ldquomais estaacutevelrdquo meacutedia de vaacuterias
mediccedilotildees recentes natildeo apenas SampleRTT atual
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 58
EstimatedRTT = (1- )EstimatedRTT + SampleRTT
meacutedia moacutevel exponencial ponderada influecircncia da amostra passada diminui
exponencialmente raacutepido valor tiacutepico = 0125
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 59
Amostras de RTTs estimados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 60
definindo o timeout EstimtedRTT mais ldquomargem de seguranccedilardquo
grande variaccedilatildeo em EstimatedRTT -gt maior margem de seg primeira estimativa do quanto SampleRTT se desvia de EstimatedRTT
TimeoutInterval = EstimatedRTT + 4DevRTT
DevRTT = (1-)DevRTT + |SampleRTT-EstimatedRTT|
(geralmente = 025)
depois definir intervalo de timeout
Tempo de ida e volta e timeout do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 61
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 62
Transferecircncia confiaacutevel de dados no TCP TCP cria serviccedilo rdt
em cima do serviccedilo natildeo confiaacutevel do IP
segmentos em paralelo
ACKs cumulativos TCP usa uacutenico
temporizador de retransmissatildeo
retransmissotildees satildeo disparadas por eventos de timeout ACKs duplicados
inicialmente considera remetente TCP simplificado ignora ACKs
duplicados ignora controle de
fluxo controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 63
Eventos de remetente TCPdados recebidos da apl cria segmento com seq seq eacute nuacutemero da
cadeia de bytes do primeiro byte de dados no segmento
inicia temporizador se ainda natildeo tiver iniciado (pense nele como para o segmento mais antigo sem ACK)
intervalo de expiraccedilatildeo TimeOutInterval
timeout retransmite segmento
que causou timeout reinicia temporizador ACK recebido Reconhecem-se
segmentos sem ACK anteriores atualiza o que
sabidamente tem ACK inicia temporizador se
houver segmentos pendentes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 64
RemetenteTCP (simplificado) NextSeqNum = InitialSeqNum SendBase = InitialSeqNum
loop (forever) switch(event)
event data received from application above create TCP segment with sequence number NextSeqNum if (timer currently not running) start timer pass segment to IP NextSeqNum = NextSeqNum + length(dados)
event timer timeout retransmit not-yet-acknowledged segment with smallest sequence number start timer
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer
end of loop forever
Comentaacuteriobull SendBase-1 uacuteltimo byte cumulativo com ACKExemplobull SendBase-1 = 71y = 73 de modo que destinataacuterio deseja 73+ y gt SendBase de modo que novos dados tecircm ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 65
TCP cenaacuterios de retransmissatildeo
Hosp A
Seq = 100 20 bytes dados
ACK = 100
tempoTimeout prematuro
Hosp B
Seq = 92 8 bytes dados
ACK =
120
Seq = 92 8 bytes dados
Seq
= 92
tim
eout
ACK =
120
Hosp A
Seq = 92 8 bytes dados
ACK = 100
losstimeo
ut
Cenaacuterio de ACK perdido
Hosp B
X
Seq = 92 8 bytes dados
ACK =
100
tempo
Seq
= 92
tim
eout
SendBase = 100
SendBase = 120
SendBase = 120
Sendbase = 100
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 66
Host A
Seq = 92 8 bytes dados
ACK = 100
perdatimeo
ut
Cenaacuterio ACK cumulativo
Host B
X
Seq = 100 20 bytes dados
ACK =
120
tempo
SendBase = 120
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 67
TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 68
Retransmissatildeo raacutepida
periacuteodo de timeout relativamente grande longo atraso antes de
reenviar pacote perdido detecta segmentos
perdidos por meio de ACKs duplicados remetente geralmente
envia muitos segmentos um apoacutes o outro
se segmento for perdido provavelmente haveraacute muitos ACKs duplicados para esse segmento
se remetente recebe 3 ACKs para os mesmos dados ele supotildee que segmento apoacutes dados com ACK foi perdido retransmissatildeo raacutepida
reenvia segmento antes que o temporizador expire
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 69
Hosp A
timeo
ut
Hosp B
tempo
X
reenvia seq X2
seq x1seq x2seq x3seq x4seq x5
ACK x1
ACK x1ACK x1ACK x1
ACKsduplicadostrecircs vezes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 70
event ACK received with ACK field value of y if (y gt SendBase) SendBase = y if (there are currently not-yet-acknowledged segments) start timer else increment count of dup ACKs received for y if (count of dup ACKs received for y = 3) resend segment with sequence number y
Algoritmo de retransmissatildeo raacutepida
ACK duplicado parasegmento jaacute com ACK
retransmissatildeo raacutepida
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 71
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 72
Controle de fluxo TCP
lado receptor da conexatildeo TCP tem um buffer de recepccedilatildeo
serviccedilo de compatibilizaccedilatildeo de velocidades compatibiliza a taxa de envio do remetente com a de leitura da aplicaccedilatildeo receptora
processo da aplicaccedilatildeo pode ser lento na leitura do buffer
remetente natildeo estouraraacute buffer do
destinataacuterio transmitindo muitos
dados muito rapidamente
controle de fluxo
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 73
Controle de fluxo TCP como funciona
(suponha que destinataacuterio TCP descarte segmentos fora de ordem)
espaccedilo de buffer natildeo usado
= rwnd = RcvBuffer-[LastByteRcvd -
LastByteRead]
destinataacuterio anuncia espaccedilo de buffer natildeo usado incluindo valor de rwnd no cabeccedilalho do segmento
remetente limita de bytes com ACKa rwnd garante que buffer do
destinataacuterio natildeo estoura
rwndRcvBuffer
datagramasIP
dados TCP(no buffer)
espaccedilode buffer
(atualmente)natildeo usado
processo daaplicaccedilatildeo
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 74
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 75
Gerenciamento da conexatildeo TCP
lembre-se Remetente e destinataacuterio TCP estabelecem ldquoconexatildeordquo antes que troquem segmentos dados
inicializa variaacuteveis TCP s seq buffers informaccedilatildeo de
controle de fluxo (p e RcvWindow)
cliente inicia a conexatildeo Socket clientSocket = new
Socket(hostnameport ) servidor contactado pelo
cliente Socket connectionSocket =
welcomeSocketaccept()
apresentaccedilatildeo de 3 viasetapa 1 hosp cliente envia
segmento SYN do TCP ao servidor especifica seq inicial sem dados
etapa 2 hosp servidor recebe SYN responde com segmento SYNACK servidor aloca buffers especifica seq inicial do
servidoretapa 3 cliente recebe SYNACK
responde com segmento ACK que pode conter dados
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 76
fechando uma conexatildeocliente fecha socket
clientSocketclose()
etapa 1 sistema final do cliente envia segmento de controle TCP FIN ao servidor
etapa 2 servidor recebe FIN responde com ACK Fecha conexatildeo envia FIN
cliente
FIN
servidor
ACK
ACK
FIN
fecha
fecha
fechado
espe
ra
tem
poriz
ada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 77
etapa 3 cliente recebe FIN responde com ACK entra em ldquoespera
temporizadardquo ndash responderaacute com ACK aos FINs recebidos
etapa 4 servidor recebe ACK - conexatildeo fechada
Nota Com pequena modificaccedilatildeo pode tratar de FINs simultacircneos
cliente
FIN
servidor
ACK
ACK
FIN
fechado
fechando
fechado
fechadoes
pera
te
mpo
rizad
a
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 78
ciclo de vida docliente TCP
ciclo de vida doservidor TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 79
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 80
Princiacutepios de controle de congestionamentoCongestionamento informalmente ldquomuitas fontes enviando
muitos dados muito raacutepido para a rede tratarrdquo diferente de controle de fluxo manifestaccedilotildees
pacotes perdidos (estouro de buffer nos roteadores)
longos atrasos (enfileiramento nos buffers do roteador)
um dos maiores problemas da rede
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 81
Causascustos do congestionamento cenaacuterio 1
dois remetentes dois destinataacuterios
um roteador infinitos buffers
sem retransmissatildeo
grandes atrasos quando congestionado
vazatildeo maacutexima alcanccedilaacutevel
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 82
Causascustos docongestionamento cenaacuterio 2 um roteador buffers finitos retransmissatildeo do pacote perdido pelo remetente
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 83
sempre (vazatildeo) retransmissatildeo ldquoperfeitardquo apenas quando haacute perda retransmissatildeo do pacote adiado (natildeo pedido) torna
maior (que o caso perfeito ) para o mesmo
in
out =
in
outgt
inout
ldquocustosrdquo do congestionamento mais trabalho (retransmissatildeo) para determinada ldquovazatildeordquo retransmissotildees desnecessaacuterias enlace transporta vaacuterias
coacutepias do pacote
R2
R2in
out
b
R2
R2in
out
a
R2
R2in
out
c
R4
R3
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 84
Causascustos do congestionamento cenaacuterio 3 quatro remetentes caminhos com vaacuterios
saltos timeoutretransmissatildeo
in
P O que acontece quando e aumentam
in
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 85
outro ldquocustordquo do congestionamento quando pacote eacute descartado qualquer
capacidade de transmissatildeo ldquoupstreamrdquo usada para esse pacote foi desperdiccedilada
Host A
Host B
o
u
t
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 86
Teacutecnicas para controle de congestionamento
controle de congestionamento fim a fim
nenhum feedback expliacutecito da rede
congestionamento deduzido da perda e atraso observados do sistema final
teacutecnica tomada pelo TCP
controle de congestionamento assistido pela rede
roteadores oferecem feedback aos sistemas finais uacutenico bit indicando
congestionamento (SNA DECbit TCPIP ECN ATM)
taxa expliacutecita que o remetente deve enviar no enlace de saiacuteda
duas teacutecnicas amplas para controle de congestionamento
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 87
Estudo de caso controle de congestionamento ATM ABRABR taxa de bit
disponiacutevel ldquoserviccedilo elaacutesticordquo se caminho do remetente
ldquosobrecarregadordquo remetente deve usar
largura de banda disponiacutevel
se caminho do remetente congestionado remetente sufocado agrave
taxa miacutenima garantida
ceacutelulas RM (gerenciamento de recursos)
enviadas pelo remetente intercaladas com ceacutelulas de dados
bits na ceacutelula RM definida por comutadores (ldquoassistido pela rederdquo) bit NI sem aumento na taxa
(congestionamento leve) bit CI indicaccedilatildeo de
congestionamento ceacutelulas RM retornadas ao remetente
pelo destinataacuterio com bits intactos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 88
campo ER (explicit rate) de 2 bytes na ceacutelula RM comutador congestionado pode reduzir valor de ER na ceacutelula taxa de envio do remetente eacute taxa maacutexima admissiacutevel no caminho
bit EFCI nas ceacutelulas de dados defina como 1 no comutador congestionado se a ceacutelula de dados anterior agrave ceacutelula RM tiver EFCI definido
remetente define bit CI na ceacutelula RM retornada
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 89
Capiacutetulo 3 Esboccedilo 31 Serviccedilos da
camada de transporte
32 Multiplexaccedilatildeo e demultiplexaccedilatildeo
33 Transporte natildeo orientado para conexatildeo UDP
34 Princiacutepios da transferecircncia confiaacutevel de dados
35 Transporte orientado para conexatildeo TCP estrutura de segmento transferecircncia confiaacutevel de
dados controle de fluxo gerenciamento da conexatildeo
36 Princiacutepios de controle de congestionamento
37 Controle de congestionamento no TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 90
Controle de congestionamento TCP busca por largura de banda
ldquoprocura por largura de bandardquo aumenta taxa de transmissatildeo no recebimento do ACK ateacute por fim ocorrer perda depois diminui taxa de transmissatildeo continua a aumentar no ACK diminui na perda (pois largura
de banda disponiacutevel estaacute mudando dependendo de outras conexotildees na rede) ACKs sendo recebidos
de modo que aumenta taxa
X
X
XX
Xperda e diminuiccedilatildeo de taxa
taxa
de
emiss
atildeo
tempo
P Com que velocidade aumentardiminuir detalhes a seguir
comportamentoldquodente de serrardquo
do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 91
Controle de congestionamento TCP detalhes
remetente limita taxa limitando nuacutemero de bytes sem ACK ldquona pipelinerdquo
cwnd difere de rwnd (como por quecirc) remetente limitado por min(cwndrwnd)
aproximadamente
cwnd eacute dinacircmico funccedilatildeo do congestionamento de rede percebido
taxa = cwnd
RTT bytesseg
LastByteSent-LastByteAcked cwnd
bytescwnd
RTT
ACK(s)
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 92
Controle de congestionamento TCP mais detalhesevento de perda de
segmento reduzindo cwnd timeout sem resposta do
destinataacuterio corta cwnd para 1
3 ACKs duplicados pelo menos alguns segmentos passando (lembre-se da retransmissatildeo raacutepida) corta cwnd pela metade
menos agressivamente do que no timeout
ACK recebido aumenta cwnd
fase de partida lenta aumento
exponencialmente raacutepido (apesar do nome) no iniacutecio da conexatildeo ou apoacutes o timeout
prevenccedilatildeo de congestionamento aumento linear
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 93
Partida lenta do TCP quando conexatildeo comeccedila cwnd = 1
MSS exemplo MSS = 500 bytes amp RTT
= 200 ms taxa inicial = 20 kbps
largura de banda disponiacutevel pode ser gtgt MSSRTT desejaacutevel subir rapidamente para
taxa respeitaacutevel aumenta taxa exponencialmente ateacute
o primeiro evento de perda ou quando o patamar eacute alcanccedilado cwnd duplo a cada RTT feito incrementando cwnd por 1
para cada ACK recebido
Hosp A
um segmento
RTT
Hosp B
tempo
dois segmentos
quatro segmentos
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 94
Transiccedilatildeo dentrofora da partida raacutepidassthresh patamar de cwnd mantido pelo TCP um evento de perda define ssthresh como cwnd2
lembre-se (metade) da taxa TCP quando ocorreu perda de congestionamento
quando transiccedilatildeo de cwnd gt = ssthresh da partida lenta para fase de prevenccedilatildeo de congestionamento
partidalenta timeout
ssthresh = cwnd2cwnd = 1 MSS
dupACKcount = 0retransmite segmento que faltatimeout
ssthresh = cwnd2 cwnd = 1 MSS
dupACKcount = 0retransmite segmento que falta
cwnd gt ssthresh
dupACKcount++duplicate ACK
cwnd = 1 MSS
ssthresh = 64 KBdupACKcount = 0 prevenccedilatildeo de
congestionamento
cwnd = cwnd+MSSdupACKcount = 0transmite novos segmento(s) como permitido
new ACK
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 95
TCP prevenccedilatildeo de congestionamento quando cwnd gt ssthresh
cresce cwnd de forma linear aumenta cwnd em 1
MSS por RTT aborda possiacutevel
congestionamento mais lento que na partida lenta
implementaccedilatildeo cwnd = cwnd + MSScwnd para cada ACK recebido
ACKs aumenta cwnd em 1 MSS por RTT aumento aditivo
perda corta cwnd ao meio (perda sem timeout detectado) diminuiccedilatildeo multiplicativa
AIMD
AIMD Additive IncreaseMultiplicative Decrease
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 96
FSM do controle decongestionamento TCP visatildeo geral
partidalenta
prevenccedilatildeode cong
recupraacutepida
cwnd gt ssthresh
perdatimeout
perdatimeout
novo ACK perda3dupACK
perda3dupACK
perdatimeout
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 97
FSM do controle de congestionamento TCP detalhes
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 98
Tipos populares de TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 99
Resumo controle decongestionamento TCP
quando cwnd lt ssthresh remetente na fase de partida lenta janela cresce exponencialmente
quando cwnd gt = ssthresh remetente estaacute na fase de prevenccedilatildeo de congestionamento janela cresce linearmente
quando ocorre o ACK duplicado triplo ssthresh definido como cwnd2 cwnd definido como ~ssthresh
quando ocorre o timeout ssthresh definido como cwnd2 cwnd definido como 1 MSS
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 100
Vazatildeo do TCP
P Qual eacute a vazatildeo meacutedia do TCP como funccedilatildeo do tamanho da janela RTT ignorando partida lenta
seja W o tamanho da janela quando ocorre a perda quando janela eacute W a vazatildeo eacute WRTT logo apoacutes perda janela cai para W2
vazatildeo para W2RTT apoacutes a vazatildeo 075 WRTT
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 101
Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo exemplo segmentos de 1500 bytes RTT de
100 ms deseja vazatildeo de 10 Gbps exige tamanho de janela W = 83333
segmentos no ar
vazatildeo em termos da taxa de perda
L = 2 10-10 Uau novas versotildees do TCP para alta velocidade
LRTTMSS221
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 102
objetivo da equidade se K sessotildees TCP compartilharem o mesmo enlace de gargalo da largura de banda R cada uma deve ter uma taxa meacutedia de RK
conexatildeo TCP 1
capacidade degargalo doroteador Rconexatildeo
TCP 2
Equidade do TCP
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 103
Por que o TCP eacute justoduas sessotildees concorrentes aumento aditivo daacute inclinaccedilatildeo 1 pois vazatildeo aumenta diminuiccedilatildeo multiplicativa diminui vazatildeo proporcionalmente
R
R
compartilhamento de largura de banda igual
Vazatildeo da conexatildeo 1
Vazatilde
o da
con
exatildeo
2
prevenccedilatildeo de cong aumento aditivoperda diminui janela por fator de 2
prevenccedilatildeo de congestionamento aumento aditivo
perda diminui janela por fator de 2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 104
Equidade (mais)equidade e UDP aplicaccedilotildees de
multimiacutedia normalmente natildeo usam TCP natildeo desejam que a
taxa seja sufocada pelo controle de congestionamento
em vez disso use UDP envia aacuteudioviacutedeo em
taxa constante tolera perdas de pacotes
qquidade e conexotildees TCP paralelas
nada impede que a aplicaccedilatildeo abra conexotildees paralelas entre 2 hospedeiros
navegadores Web fazem isso
exemplo enlace de taxa R admitindo 9 conexotildees nova aplicaccedilatildeo solicita 1
TCP recebe taxa R10 nova aplicaccedilatildeo solicita 11
TCPs recebe R2
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-
copy 2010 Pearson Prentice Hall Todos os direitos reservadosslide 105
Capiacutetulo 3 Resumo princiacutepios por traacutes dos serviccedilos
da camada de transporte multiplexaccedilatildeo
demultiplexaccedilatildeo transferecircncia de dados
confiaacutevel controle de fluxo controle de congestionamento
instacircncia e implementaccedilatildeo na Internet UDP TCP
Em seguida saindo da ldquobordardquo
da rede (camada de transportes da aplicaccedilatildeo)
no ldquonuacutecleordquo da rede
- PowerPoint Presentation
- Capiacutetulo 3 Camada de transporte
- Capiacutetulo 3 Esboccedilo
- Serviccedilos e protocolos de transporte
- Camada de transporte versus rede
- Protocolos da camada de transporte da Internet
- Slide 7
- Multiplexaccedilatildeo demultiplexaccedilatildeo
- Como funciona a demultiplexaccedilatildeo
- Demultiplexaccedilatildeo natildeo orientada para conexatildeo
- Slide 11
- Demultiplexaccedilatildeo orientada para conexatildeo
- Slide 13
- Demultiplexaccedilatildeo orientada para conexatildeo servidor Web threaded
- Slide 15
- UDP User Datagram Protocol [RFC 768]
- UDP mais
- Soma de verificaccedilatildeo UDP
- Exemplo de soma de verificaccedilatildeo da Internet
- Slide 20
- Princiacutepios de transferecircncia confiaacutevel de dados
- Transferecircncia confiaacutevel de dados introduccedilatildeo
- Slide 23
- Rdt10 transferecircncia confiaacutevel por canal confiaacutevel
- Rdt20 canal com erros de bit
- rdt20 especificaccedilatildeo da FSM
- rdt20 operaccedilatildeo sem erros
- rdt20 cenaacuterio de erro
- rdt20 tem uma falha fatal
- rdt21 remetente trata de ACKNAKs corrompidos
- Slide 31
- rdt21 discussatildeo
- rdt22 um protocolo sem NAK
- rdt22 fragmentos do remetente destinataacuterio
- rdt30 canais com erros e perda
- remetente rdt30
- rdt30 em accedilatildeo
- Slide 38
- Desempenho do rdt30
- rdt30 operaccedilatildeo pare e espere
- Protocolos com paralelismo
- Paralelismo utilizaccedilatildeo aumentada
- Slide 43
- Go-Back-N
- GBN FSM estendido no remetente
- GBN FSM estendido no destinataacuterio
- GBN em operaccedilatildeo
- Repeticcedilatildeo seletiva
- Repeticcedilatildeo seletiva janelas de remetente destinataacuterio
- Slide 50
- Repeticcedilatildeo seletiva em operaccedilatildeo
- Repeticcedilatildeo seletiva dilema
- Slide 53
- TCP Visatildeo geral RFCs 793 1122 1323 2018 2581
- Estrutura do segmento TCP
- s sequecircncia e ACKs do TCP
- Tempo de ida e volta e timeout do TCP
- Slide 58
- Amostras de RTTs estimados
- Slide 60
- Slide 61
- Transferecircncia confiaacutevel de dados no TCP
- Eventos de remetente TCP
- RemetenteTCP (simplificado)
- TCP cenaacuterios de retransmissatildeo
- Slide 66
- TCP geraccedilatildeo de ACK [RFC 1122 RFC 2581]
- Retransmissatildeo raacutepida
- Slide 69
- Algoritmo de retransmissatildeo raacutepida
- Slide 71
- Controle de fluxo TCP
- Controle de fluxo TCP como funciona
- Slide 74
- Gerenciamento da conexatildeo TCP
- Slide 76
- Slide 77
- Slide 78
- Slide 79
- Princiacutepios de controle de congestionamento
- Causascustos do congestionamento cenaacuterio 1
- Causascustos do congestionamento cenaacuterio 2
- Slide 83
- Causascustos do congestionamento cenaacuterio 3
- Slide 85
- Teacutecnicas para controle de congestionamento
- Estudo de caso controle de congestionamento ATM ABR
- Slide 88
- Slide 89
- Controle de congestionamento TCP busca por largura de banda
- Controle de congestionamento TCP detalhes
- Controle de congestionamento TCP mais detalhes
- Partida lenta do TCP
- Transiccedilatildeo dentrofora da partida raacutepida
- TCP prevenccedilatildeo de congestionamento
- FSM do controle de congestionamento TCP visatildeo geral
- FSM do controle de congestionamento TCP detalhes
- Tipos populares de TCP
- Resumo controle de congestionamento TCP
- Vazatildeo do TCP
- Futuros do TCP TCP sobre pipes ldquolongos gordosrdquo
- Equidade do TCP
- Por que o TCP eacute justo
- Equidade (mais)
- Capiacutetulo 3 Resumo
-