© 2010 pearson prentice hall. todos os direitos reservados.slide 1 capítulo 3 camada de transporte...

105
© 2010 Pearson Prentice Hall. Todos os direitos reservados. slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando estes slides gratuitamente a todos (professores, alunos, leitores). Eles estão em formato do PowerPoint para que você possa incluir, modificar e excluir slides (incluindo este) e o conteúdo do slide, de acordo com suas necessidades. Eles obviamente representam muito trabalho da nossa parte. Em retorno pelo uso, pedimos apenas o seguinte: Se você usar estes slides (por exemplo, em sala de aula) sem muita alteração, que mencione sua fonte (afinal, gostamos que as pessoas usem nosso livro!). Se você postar quaisquer slides sem muita alteração em um site Web, que informe que eles foram adaptados dos (ou talvez © 2010 Pearson Prentice Hall. Todos os direitos slide 1

Upload: maria-do-pilar-barbosa-porto

Post on 07-Apr-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 2: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 3: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 4: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 5: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 6: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 7: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 8: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 9: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 10: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 11: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 12: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 13: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 14: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 15: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 16: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 17: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 18: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 19: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 20: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 21: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 22: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 23: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 24: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 25: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 26: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 27: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 28: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 29: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 30: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 31: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 32: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 33: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 34: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 35: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 36: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 37: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 38: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 39: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 40: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 41: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 42: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 43: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 44: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 45: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 46: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 47: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 48: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 49: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 50: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 51: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 52: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 53: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 54: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 55: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 56: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 57: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 58: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 59: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 60: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 61: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 62: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 63: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 64: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 65: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 66: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 67: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 68: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 69: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 70: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 71: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 72: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 73: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 74: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 75: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 76: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 77: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 78: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 79: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 80: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 81: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 82: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 83: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 84: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 85: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 86: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 87: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 88: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 89: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 90: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 91: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 92: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 93: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 94: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 95: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 96: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 97: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 98: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 99: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 100: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 101: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 102: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 103: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 104: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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
Page 105: © 2010 Pearson Prentice Hall. Todos os direitos reservados.slide 1 Capítulo 3 Camada de transporte Nota sobre o uso destes slides ppt: Estamos disponibilizando

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